My talk about Tarantool and Lua at Percona Live 2016Konstantin Osipov
In my talk I will focus on a practical use case: task queue
application, using Tarantool as an application server and a
database.
The idea of the task queue is that producers put tasks (objects)
into a queue, and consumers take tasks, perform them, mark as
completed.
The queue must guarantee certain properties: if a consumer failed,
a task should return to the queue automatically, a task can't be
taken by more than one consumer, priorities on tasks should be
satisfied.
With Tarantool, a task queue is a distributed networked
application: there are multiple consumer/producer endpoints
(hosts) through which a user can interact with the queue.
The queue itself is a fault-tolerant distributed database:
every task is stored in Tarantool database and replicated
in multiple copies.
If a machine goes down, the state of a task is tracked on a
replica, and the user can continue working with the
queue through a replica.
Total power failure is also not an issue, since tasks are stored
persistently on disk with transactional semantics.
Performance of such an application is in hundreds of thousands of
transactions per second.
At the same time, the queue is highly customizable, since it's
written entirely in Lua, is a Lua rock, but the code is running
inside the database. This is the strength of Lua:
one size doesn't have to fit all, and you don't have to sacrifice
performance if you need customization.
The second part of the talk will be about implementation details,
performance numbers, a performance comparison with other queue
products (beanstalkd, rabbitmq) in particular, and an overview
of the implementation from language bindings point of view: how we
make database API available in Lua, what are the challenges and
performance hurdles of such binding.
Glusterfs session #18 intro to fuse and its trade offsPranith Karampuri
This session covers fuse and its trade offs. Details of the session include:
- various parts of fuse code in the glusterfs source
tree
- the story FUSE version macros tell
- the tale of FUSE and fuse (historical context,
terminology)
- to libfuse or not to libfuse?
- FUSE proto breakdown
- mount and INIT
Using Xcode Schemes and NSUserDefaults through Arguments Passed On Launch.
This was presented at Melbourne Cocoaheads
Video here: https://youtu.be/BNR6lbf6EZE?t=3898
This content was also discussed on the iOhYes podcast: http://5by5.tv/iohyes/88
My talk about Tarantool and Lua at Percona Live 2016Konstantin Osipov
In my talk I will focus on a practical use case: task queue
application, using Tarantool as an application server and a
database.
The idea of the task queue is that producers put tasks (objects)
into a queue, and consumers take tasks, perform them, mark as
completed.
The queue must guarantee certain properties: if a consumer failed,
a task should return to the queue automatically, a task can't be
taken by more than one consumer, priorities on tasks should be
satisfied.
With Tarantool, a task queue is a distributed networked
application: there are multiple consumer/producer endpoints
(hosts) through which a user can interact with the queue.
The queue itself is a fault-tolerant distributed database:
every task is stored in Tarantool database and replicated
in multiple copies.
If a machine goes down, the state of a task is tracked on a
replica, and the user can continue working with the
queue through a replica.
Total power failure is also not an issue, since tasks are stored
persistently on disk with transactional semantics.
Performance of such an application is in hundreds of thousands of
transactions per second.
At the same time, the queue is highly customizable, since it's
written entirely in Lua, is a Lua rock, but the code is running
inside the database. This is the strength of Lua:
one size doesn't have to fit all, and you don't have to sacrifice
performance if you need customization.
The second part of the talk will be about implementation details,
performance numbers, a performance comparison with other queue
products (beanstalkd, rabbitmq) in particular, and an overview
of the implementation from language bindings point of view: how we
make database API available in Lua, what are the challenges and
performance hurdles of such binding.
Glusterfs session #18 intro to fuse and its trade offsPranith Karampuri
This session covers fuse and its trade offs. Details of the session include:
- various parts of fuse code in the glusterfs source
tree
- the story FUSE version macros tell
- the tale of FUSE and fuse (historical context,
terminology)
- to libfuse or not to libfuse?
- FUSE proto breakdown
- mount and INIT
Using Xcode Schemes and NSUserDefaults through Arguments Passed On Launch.
This was presented at Melbourne Cocoaheads
Video here: https://youtu.be/BNR6lbf6EZE?t=3898
This content was also discussed on the iOhYes podcast: http://5by5.tv/iohyes/88
Replicate xlator graph placement
- on-disk data representation
- On-disk data manipulation with xattrop
- Common functioning of fops
- Lookup
- Open
- readdir/readdirp
- Flush
- Statfs
Agenda:
In this session, Shmulik Ladkani discusses the kernel's net_device abstraction, its interfaces, and how net-devices interact with the network stack. The talk covers many of the software network devices that exist in the Linux kernel, the functionalities they provide and some interesting use cases.
Speaker:
Shmulik Ladkani is a Tech Lead at Ravello Systems.
Shmulik started his career at Jungo (acquired by NDS/Cisco) implementing residential gateway software, focusing on embedded Linux, Linux kernel, networking and hardware/software integration.
51966 coffees and billions of forwarded packets later, with millions of homes running his software, Shmulik left his position as Jungo’s lead architect and joined Ravello Systems (acquired by Oracle) as tech lead, developing a virtual data center as a cloud service. He's now focused around virtualization systems, network virtualization and SDN.
In this talk, Gil Yankovitch discusses the PaX patch for the Linux kernel, focusing on memory manager changes and security mechanisms for memory allocations, reads, writes from user/kernel space and ASLR.
Parallel computing in bioinformatics t.seemann - balti bioinformatics - wed...Torsten Seemann
I describe the three levels of parallelism that can be exploited in bioinformatics software (1) clusters of multiple computers; (2) multiple cores on each computer; and (3) vector machine code instructions.
Userfaultfd: Current Features, Limitations and Future DevelopmentKernel TLV
userfaultfd is a mechanism that allows user-space paging implementation. Originally designed for post-copy migration of virtual machines, it applies to different use cases, such as implementation of volatile ranges, container migration, improvement of robustness of shared memory, efficient memory snapshotting and more.
This talk covers the current status and supported features of userfaultfd, work currently in progress and future development plans.
Mike Rapoport
Mike has been hacking on the Linux kernel for over a decade. He has added his 2 cents to the mess in arch/arm, contributed to several device drivers and now he is focused on userfaultfd and CRIU.
Mike’s current position is a researcher at IBM.
Replicate xlator graph placement
- on-disk data representation
- On-disk data manipulation with xattrop
- Common functioning of fops
- Lookup
- Open
- readdir/readdirp
- Flush
- Statfs
Agenda:
In this session, Shmulik Ladkani discusses the kernel's net_device abstraction, its interfaces, and how net-devices interact with the network stack. The talk covers many of the software network devices that exist in the Linux kernel, the functionalities they provide and some interesting use cases.
Speaker:
Shmulik Ladkani is a Tech Lead at Ravello Systems.
Shmulik started his career at Jungo (acquired by NDS/Cisco) implementing residential gateway software, focusing on embedded Linux, Linux kernel, networking and hardware/software integration.
51966 coffees and billions of forwarded packets later, with millions of homes running his software, Shmulik left his position as Jungo’s lead architect and joined Ravello Systems (acquired by Oracle) as tech lead, developing a virtual data center as a cloud service. He's now focused around virtualization systems, network virtualization and SDN.
In this talk, Gil Yankovitch discusses the PaX patch for the Linux kernel, focusing on memory manager changes and security mechanisms for memory allocations, reads, writes from user/kernel space and ASLR.
Parallel computing in bioinformatics t.seemann - balti bioinformatics - wed...Torsten Seemann
I describe the three levels of parallelism that can be exploited in bioinformatics software (1) clusters of multiple computers; (2) multiple cores on each computer; and (3) vector machine code instructions.
Userfaultfd: Current Features, Limitations and Future DevelopmentKernel TLV
userfaultfd is a mechanism that allows user-space paging implementation. Originally designed for post-copy migration of virtual machines, it applies to different use cases, such as implementation of volatile ranges, container migration, improvement of robustness of shared memory, efficient memory snapshotting and more.
This talk covers the current status and supported features of userfaultfd, work currently in progress and future development plans.
Mike Rapoport
Mike has been hacking on the Linux kernel for over a decade. He has added his 2 cents to the mess in arch/arm, contributed to several device drivers and now he is focused on userfaultfd and CRIU.
Mike’s current position is a researcher at IBM.
A aicep Portugal Global | Sessão informativa 'Internacionalizar e as Empresas...Município de Ponte de Lima
"Internacionalizar e as Empresas de Ponte de Lima" foi o tema de uma sessão informativa que o Município de Ponte de Lima promoveu no dia 17 de janeiro de 2013, no Auditório Municipal.
Dirigida às empresas locais, esta ação surge de uma parceria estabelecida com a Agência para o Investimento e Comércio Externo de Portugal (AICEP), no sentido de divulgar as novas oportunidades de negócios e capacitação das empresas do concelho, nomeadamente na perspetiva de internacionalização das suas atividades.
Sendo a exportação de bens e serviços um importante motor de crescimento e geração de riqueza que alavancam a criação de emprego, o Município de Ponte de Lima e a (AICEP) consideram que é oportuno neste período dar a conhecer todas as ferramentas institucionais ao dispor dos empresários locais que pretendam iniciar processos de internacionalização/exportação dos seus bens ou serviços.
es una exposición acerca de la empresa de Whisky johnnie Walker, la cual es la empresa de bebidas alcohólicas mas importante del mundo, y la de mayor prestigio.
Atelier Monnaies Complémentaires - Rencontres de Babyloan 2010Baby Loan
Cette présentation a été diffusée pendant l'atelier sur les Monnaies complémentaires et l'échange de richesse, samedi 16 octobre 2010 pendant les Rencontres de Babyloan. Cet atelier a été conçu et animé par le collectif "Les Valeureux", spécialisé dans le design de ces outils en pleine émergence.
Plus d'infos:
www.rencontresdebabyloan.fr
www.babyloan.org
Userspace RCU library : what linear multiprocessor scalability means for your...Alexey Ivanov
RCU is well-known at the kernel-level for providing a way to synchronize shared data structures in read-often, update-rarely scenarios.
The development of a RCU library at the userspace application level has been mainly driven by the need for efficient synchronization of userspace tracing control data structures.
IBM kindly agreed to allow distribution of RCU-related code in a LGPL library, which makes it available for everyone to use. This can have large impact on the design of highly scalable applications performing caching of frequent requests, like domain name servers, proxy and web servers.
This presentation will discuss about the class of applications which could benefit from using the userspace RCU library.
The userspace RCU library is available under the LGPL license at http://www.lttng.org/urcu .
Kernel Recipes 2019 - RCU in 2019 - Joel FernandesAnne Nicolas
RCU has seen lots of changes in the last 2 years. Of note is the RCU flavor consolidation and tree RCU’s lock contention improvements. There have been also improvements with static checking, fixes to scheduler deadlocks and improvements to RCU-based linked lists. This talk starts with an introduction of RCU along with presenting the recent Improvements and changes in RCU’s behavior.
Андрей Вагин. Все что вы хотели знать о Criu, но стеснялись спросить...WG_ Events
Доклад: Все что вы хотели знать о CRIU, но стеснялись спросить...
Андрей Вагин пришёл в Parallels в 2006 году, занимается разработкой ядра Linux, контейнерной системы OpenVZ и сравнительно молодого проекта CRIU. В 2008 году закончил МФТИ.
Все что вы хотели знать о CRIU, но стеснялись спросить...
Проект CRIU (Checkpoint /Restore in Userspace) позвляет содавать контрольные точки и осуществлять миграцию сервисов или контейнеров в реальном времени. Некоторое время назад проект преодолел очередной рубеж и вышел из стадии эксперимента. Следующая зада — интегрировать CRIU в сторонние проекты, такие как OpenVZ, LXC, Docker, OpenMPI. Доклад раскроет всю магию процедуры сохранения и восстановления процессов. Вы узнаете, как в любой процесс можно незаметно подсадить паразита-разведчика и вытянуть все тайны, как системный вызов rt-sigreturn пригодился совсем не там, где родился. Будет показано внутреннее устройство CRIU (без цензуры), блистательные моменты реализации, и почему всё-таки пришлось добавить патчи в ядро. Во второй части доклада будут рассмотрены механизмы взаимодействия CRIU с другими проектами и наиболее частые вопросы интеграции.
http://www.eventbrite.com/e/open-wg-talk-2-linux-container-virtualization-tickets-12189971533
Implementing efficient spinlocks in userspace is not possible yet in Linux,
even after years of different approaches and proposed solutions.The main gap to
achieve it is the lack of ABI providing an easy and low-overhead way to check
if the current lock holder is running or not.
In this session, we are going to present the problem, and to propose a solution
for it using the restartable sequences infrastructure as means to expose the
thread state to userspace in a cheap way, without requiring system calls.
RFC:
https://lore.kernel.org/lkml/20230529191416.53955-1-mathieu.desnoyers@efficios.com/
(c) Linux Plumbers Conference 2023
15-15 Nov
Omni Richmond Hotel, Richmond, VA (US)
https://lpc.events/event/17/page/198-lpc-2023-overview
CONFidence 2017: Escaping the (sand)box: The promises and pitfalls of modern ...PROIDEA
Users of modern Linux containerization technologies are frequently at loss with what kind of security guarantees are delivered by tools they use. Typical questions range from Can these be used to isolate software with known security shortcomings and rich history of security vulnerabilities? to even Can I used such technique to isolate user-generated and potentially hostile assembler payloads?
Modern Linux OS code-base as well as independent authors provide a plethora of options for those who desire to make sure that their computational loads are solidly confined. Potential users can choose from solutions ranging from Docker-like confinement projects, through Xen hypervisors, seccomp-bpf and ptrace-based sandboxes, to isolation frameworks based on hardware virtualization (e.g. KVM).
The talk will discuss available today techniques, with focus on (frequently overstated) promises regarding their strength. In the end, as they say: “Many speed bumps don’t make a wall
Because this system is web application (partially)
Because we based (100%) on FOSS (open-source)
Because security matters
Because OWASP people cares about security and can affect recruitment processes (hopefully) ;)
Agenda:
In this talk we will present various locking mechanisms implemented in the linux kernel.
From System V locks to raw spinlocks and the RT patch.
Speaker:
Mark Veltzer - CTO of Hinbit and a senior instructor at John Bryce. Mark is also a member of the Free Source Foundation and contributes to many free projects.
https://github.com/veltzer
This slide deck tries to evolve the challenges a developer can go through while designing a distributed system. It also explains a consensus algorithm called RAFT. Few slides also describe about consistent distributed key value store concepts and project like etcd using all these concepts.
Cosmetic shop management system project report.pdfKamal Acharya
Buying new cosmetic products is difficult. It can even be scary for those who have sensitive skin and are prone to skin trouble. The information needed to alleviate this problem is on the back of each product, but it's thought to interpret those ingredient lists unless you have a background in chemistry.
Instead of buying and hoping for the best, we can use data science to help us predict which products may be good fits for us. It includes various function programs to do the above mentioned tasks.
Data file handling has been effectively used in the program.
The automated cosmetic shop management system should deal with the automation of general workflow and administration process of the shop. The main processes of the system focus on customer's request where the system is able to search the most appropriate products and deliver it to the customers. It should help the employees to quickly identify the list of cosmetic product that have reached the minimum quantity and also keep a track of expired date for each cosmetic product. It should help the employees to find the rack number in which the product is placed.It is also Faster and more efficient way.
Saudi Arabia stands as a titan in the global energy landscape, renowned for its abundant oil and gas resources. It's the largest exporter of petroleum and holds some of the world's most significant reserves. Let's delve into the top 10 oil and gas projects shaping Saudi Arabia's energy future in 2024.
Final project report on grocery store management system..pdfKamal Acharya
In today’s fast-changing business environment, it’s extremely important to be able to respond to client needs in the most effective and timely manner. If your customers wish to see your business online and have instant access to your products or services.
Online Grocery Store is an e-commerce website, which retails various grocery products. This project allows viewing various products available enables registered users to purchase desired products instantly using Paytm, UPI payment processor (Instant Pay) and also can place order by using Cash on Delivery (Pay Later) option. This project provides an easy access to Administrators and Managers to view orders placed using Pay Later and Instant Pay options.
In order to develop an e-commerce website, a number of Technologies must be studied and understood. These include multi-tiered architecture, server and client-side scripting techniques, implementation technologies, programming language (such as PHP, HTML, CSS, JavaScript) and MySQL relational databases. This is a project with the objective to develop a basic website where a consumer is provided with a shopping cart website and also to know about the technologies used to develop such a website.
This document will discuss each of the underlying technologies to create and implement an e- commerce website.
Overview of the fundamental roles in Hydropower generation and the components involved in wider Electrical Engineering.
This paper presents the design and construction of hydroelectric dams from the hydrologist’s survey of the valley before construction, all aspects and involved disciplines, fluid dynamics, structural engineering, generation and mains frequency regulation to the very transmission of power through the network in the United Kingdom.
Author: Robbie Edward Sayers
Collaborators and co editors: Charlie Sims and Connor Healey.
(C) 2024 Robbie E. Sayers
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdffxintegritypublishin
Advancements in technology unveil a myriad of electrical and electronic breakthroughs geared towards efficiently harnessing limited resources to meet human energy demands. The optimization of hybrid solar PV panels and pumped hydro energy supply systems plays a pivotal role in utilizing natural resources effectively. This initiative not only benefits humanity but also fosters environmental sustainability. The study investigated the design optimization of these hybrid systems, focusing on understanding solar radiation patterns, identifying geographical influences on solar radiation, formulating a mathematical model for system optimization, and determining the optimal configuration of PV panels and pumped hydro storage. Through a comparative analysis approach and eight weeks of data collection, the study addressed key research questions related to solar radiation patterns and optimal system design. The findings highlighted regions with heightened solar radiation levels, showcasing substantial potential for power generation and emphasizing the system's efficiency. Optimizing system design significantly boosted power generation, promoted renewable energy utilization, and enhanced energy storage capacity. The study underscored the benefits of optimizing hybrid solar PV panels and pumped hydro energy supply systems for sustainable energy usage. Optimizing the design of solar PV panels and pumped hydro energy supply systems as examined across diverse climatic conditions in a developing country, not only enhances power generation but also improves the integration of renewable energy sources and boosts energy storage capacities, particularly beneficial for less economically prosperous regions. Additionally, the study provides valuable insights for advancing energy research in economically viable areas. Recommendations included conducting site-specific assessments, utilizing advanced modeling tools, implementing regular maintenance protocols, and enhancing communication among system components.
Student information management system project report ii.pdfKamal Acharya
Our project explains about the student management. This project mainly explains the various actions related to student details. This project shows some ease in adding, editing and deleting the student details. It also provides a less time consuming process for viewing, adding, editing and deleting the marks of the students.
3. 3
Agenda
● Introduction to GlusterD
● Big lock in thread synchronization in GlusterD
● Issues with Big Lock approach
● Different locking primitives
● What is RCU
● Advantage of RCU over read-write lock
● RCU mechanisms – Insertion, Deletion, Reader
● URCU flavors
● URCU APIs
● URCU use cases
● Q&A
4. 4
What is GlusterD
● Manages the cluster configuration for Gluster
● Responsible for
– Peer membership management
– Elastic volume management
– Configuration consistency
– Distributed command execution (orchestration)
– Service management (manages GlusterFS
daemons)
5. 5
Thread synchronization in GlusterD
● GlusterD was initially designed as single threaded
● Single threaded → Multi threaded to satisfy usecases
like snapshot
● Big lock
– A coarse grained lock
– Only one transaction can work inside big lock
– Protects all the shared data structures
6. 6
Issues with Big Lock
● Threads contend for even unrelated data
● Can end up in a deadlock
– RPC request's callback also needs big lock
● Shall we release big lock in between a transaction to
get rid of above deadlock? Yes we do, but….
● Here come's the problem - a small window of time
when the shared data structures are prone to updates
leading to inconsistencies
8. 8
What is RCU
● Synchronization mechanism
● Not new, added to Linux Kernel in 2002
● Allows reads to occur concurrently with update
● Maintains multiple version of objects for read
coherency
● Almost zero over heads in read side critical
section
9. 9
Advantages of RCU over read-write
lock
● Concurrent readers & writers – writer writes, readers read
● Wait free reads
– RCU readers have no wait overhead. They can never be blocked by writers
● Existence guarantee
– RCU guarantees that RCU protected data in a readers critical section will remain
in existence till the end of the critical section
● Deadlock immunity
– RCU readers always run in a deterministic time as they never block. This means
that they can never become a part of a deadlock.
● No writer starvation
– As RCU readers don't block, writers can never starve.
10. 10
RCU mechanism
● RCU is made up of three fundamental mechanisms
– Publish-Subscribe Mechanism (for insertion)
– Wait For Pre-Existing RCU Readers to Complete (for
deletion)
– Maintain Multiple Versions of Recently Updated Objects
(for readers)
11. 11
Publish-Subscribe model
● rcu_assign_pointer () for publication
1 struct foo {
2 int a;
3 int b;
4 int c;
5 };
6 struct foo *gp = NULL;
7
8 /* . . . */
9
10 p = malloc (...);
11 p->a = 1;
12 p->b = 2;
13 p->c = 3;
14 gp = p;
1 struct foo {
2 int a;
3 int b;
4 int c;
5 };
6 struct foo *gp = NULL;
7
8 /* . . . */
9
10 p = malloc (...);
11 p->a = 1;
12 p->b = 2;
13 p->c = 3;
14 rcu_assign_pointer(gp, p);
● rcu_dereference () for subscription
1 p = gp;
2 if (p != NULL) {
3 do_something_with(p->a, p->b, p->c);
4 }
1 rcu_read_lock();
2 p = rcu_dereference(gp);
3 if (p != NULL) {
4 do_something_with(p->a, p->b, p->c);
5 }
6 rcu_read_unlock();
12. 12
Publish-Subscribe Model (ii)
● rcu_assign_pointer () & rcu_dereference ()
embedded in special RCU variants of Linux's
list-manipulation API
● rcu_assign_pointer () → list_add_rcu ()
● rcu_dereference () → list_for_each_entry_rcu ()
14. 14
Maintain multiple version objects
● Used for existence gurantee
1. p = search(head, key);
2. list_del_rcu(&p->list);
3. synchronize_rcu();
4. free (p);
1. p = search(head, key);
2. list_del_rcu(&p->list);
3. synchronize_rcu();
4. free (p);
1. p = search(head, key);
2. list_del_rcu(&p->list);
3. synchronize_rcu();
4. free (p);
Maintain multiple version objects
● Used for existence gurantee
1. p = search(head, key);
2. list_del_rcu(&p->list);
3. synchronize_rcu();
4. free (p);
1. p = search(head, key);
2. list_del_rcu(&p->list);
3. synchronize_rcu();
4. free (p);
1. p = search(head, key);
2. list_del_rcu(&p->list);
3. synchronize_rcu();
4. free (p);
15. 15
URCU flavors
● QSBR (quiescent-state-based RCU)
– each thread must periodically invoke rcu_quiescent_state()
– Thread (un)registration required
● Memory-barrier-based RCU
– Preemptible RCU implementation
– Introduces memory barrier in read critical secion, hence high read side
overhead
● “Bullet-proof” RCU (RCU-BP)
– Similar like memory barrier based RCU but thread (un)registration is taken
care
– Primitive overheads but can be used by application without worrying about
thread creation/destruction
16. 16
URCU flavors (ii)
● Signal-based RCU
– Removes memory barrier
– Can be used by library function
– requires that the user application give up a POSIX signal to be
used by synchronize_rcu() in place of the read-side memory
barriers.
– Requires explicit thread registration
● Signal-based RCU using an out-of-tree sys_membarrier() system call
– sys_membarrier() system call instead of POSIX signal