The document describes the Chubby lock service, which provides a centralized lock service using Paxos consensus. Chubby maintains a simple database replicated across servers (replicas), with one server elected as the master via Paxos. Clients can perform read and write operations on the database by communicating only with the master server. The lock service provides reliability and availability rather than high performance. It was used in Google systems like GFS, Bigtable to coordinate processes and ensure only one acts on a shared resource at a time.
The first presentation for Kafka Meetup @ Linkedin (Bangalore) held on 2015/12/5
It provides a brief introduction to the motivation for building Kafka and how it works from a high level.
Please download the presentation if you wish to see the animated slides.
The Google Chubby lock service for loosely-coupled distributed systemsRomain Jacotin
The Google Chubby lock service presented in 2006 is the inspiration for Apache ZooKeeper: let's take a deep dive into Chubby to better understand ZooKeeper and distributed consensus.
A Distributed File System(DFS) is simply a classical model of a file system distributed across multiple machines.The purpose is to promote sharing of dispersed files.
The first presentation for Kafka Meetup @ Linkedin (Bangalore) held on 2015/12/5
It provides a brief introduction to the motivation for building Kafka and how it works from a high level.
Please download the presentation if you wish to see the animated slides.
The Google Chubby lock service for loosely-coupled distributed systemsRomain Jacotin
The Google Chubby lock service presented in 2006 is the inspiration for Apache ZooKeeper: let's take a deep dive into Chubby to better understand ZooKeeper and distributed consensus.
A Distributed File System(DFS) is simply a classical model of a file system distributed across multiple machines.The purpose is to promote sharing of dispersed files.
Cloud infrastructure mechanisms are foundational building blocks of cloud environments that establish primary artifacts to form the basis of fundamental cloud technology architecture.
- Problems with traditional data centers.
- Cloud computing definition, deployment, and services models.
- Essential characteristics of cloud services.
- IaaS examples.
- PaaS examples.
- SaaS examples.
- Cloud enabling technologies such as grid computing, utility computing, service oriented architecture (SOA), The Internet, Multi-tenancy, Web 2.0, Automation and Virtualization.
INTRODUCTION : Server Centric IT Architecture and its Limitations; Storage – Centric IT Architecture and its advantages; Case study: Replacing a server with Storage Networks; The Data Storage and Data Access problem; The Battle for size and access.
INTELLIGENT DISK SUBSYSTEMS – 1
Architecture of Intelligent Disk Subsystems; Hard disks and Internal I/O Channels, JBOD, Storage virtualization using RAID and different RAID levels;
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안SANG WON PARK
Apache Kafak의 빅데이터 아키텍처에서 역할이 점차 커지고, 중요한 비중을 차지하게 되면서, 성능에 대한 고민도 늘어나고 있다.
다양한 프로젝트를 진행하면서 Apache Kafka를 모니터링 하기 위해 필요한 Metrics들을 이해하고, 이를 최적화 하기 위한 Configruation 설정을 정리해 보았다.
[Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안]
Apache Kafka 성능 모니터링에 필요한 metrics에 대해 이해하고, 4가지 관점(처리량, 지연, Durability, 가용성)에서 성능을 최적화 하는 방안을 정리함. Kafka를 구성하는 3개 모듈(Producer, Broker, Consumer)별로 성능 최적화를 위한 …
[Apache Kafka 모니터링을 위한 Metrics 이해]
Apache Kafka의 상태를 모니터링 하기 위해서는 4개(System(OS), Producer, Broker, Consumer)에서 발생하는 metrics들을 살펴봐야 한다.
이번 글에서는 JVM에서 제공하는 JMX metrics를 중심으로 producer/broker/consumer의 지표를 정리하였다.
모든 지표를 정리하진 않았고, 내 관점에서 유의미한 지표들을 중심으로 이해한 내용임
[Apache Kafka 성능 Configuration 최적화]
성능목표를 4개로 구분(Throughtput, Latency, Durability, Avalibility)하고, 각 목표에 따라 어떤 Kafka configuration의 조정을 어떻게 해야하는지 정리하였다.
튜닝한 파라미터를 적용한 후, 성능테스트를 수행하면서 추출된 Metrics를 모니터링하여 현재 업무에 최적화 되도록 최적화를 수행하는 것이 필요하다.
Cloud here means data and encryption means to secure the data. In this ppt you can get to know about various encryption algorithms which are used to secure the data.
Distributed Database Architecture
Database Links
Distributed Database Administration
Transaction Processing in a Distributed System
Distributed Database Application Development
Character Set Support for Distributed Environments
File Replication : High availability is a desirable feature of a good distributed file system and file replication is the primary mechanism for improving file availability. Replication is a key strategy for improving reliability, fault tolerance and availability. Therefore duplicating files on multiple machines improves availability and performance.
Replicated file : A replicated file is a file that has multiple copies, with each copy located on a separate file server. Each copy of the set of copies that comprises a replicated file is referred to as replica of the replicated file.
Replication is often confused with caching, probably because they both deal with multiple copies of data. The two concepts has the following basic differences:
A replica is associated with server, whereas a cached copy is associated with a client.
The existence of cached copy is primarily dependent on the locality in file access patterns, whereas the existence of a replica normally depends on availability and performance requirements.
Satynarayanana [1992] distinguishes a replicated copy from a cached copy by calling the first-class replicas and second-class replicas respectively
AcceDe Web, a Guide for Accessibility Web Projects, OW2con'16, Paris. OW2
The AcceDe Web set of guides is offering best practices to all the key project stakeholders, including web developers and graphic designers. These documents are based on the experience of a range of seasoned professionals representing web agencies, corporate companies, public agencies and associations. They provide project teams with practical step by step instructions, and project managers with useful project management tools.
Cloud infrastructure mechanisms are foundational building blocks of cloud environments that establish primary artifacts to form the basis of fundamental cloud technology architecture.
- Problems with traditional data centers.
- Cloud computing definition, deployment, and services models.
- Essential characteristics of cloud services.
- IaaS examples.
- PaaS examples.
- SaaS examples.
- Cloud enabling technologies such as grid computing, utility computing, service oriented architecture (SOA), The Internet, Multi-tenancy, Web 2.0, Automation and Virtualization.
INTRODUCTION : Server Centric IT Architecture and its Limitations; Storage – Centric IT Architecture and its advantages; Case study: Replacing a server with Storage Networks; The Data Storage and Data Access problem; The Battle for size and access.
INTELLIGENT DISK SUBSYSTEMS – 1
Architecture of Intelligent Disk Subsystems; Hard disks and Internal I/O Channels, JBOD, Storage virtualization using RAID and different RAID levels;
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안SANG WON PARK
Apache Kafak의 빅데이터 아키텍처에서 역할이 점차 커지고, 중요한 비중을 차지하게 되면서, 성능에 대한 고민도 늘어나고 있다.
다양한 프로젝트를 진행하면서 Apache Kafka를 모니터링 하기 위해 필요한 Metrics들을 이해하고, 이를 최적화 하기 위한 Configruation 설정을 정리해 보았다.
[Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안]
Apache Kafka 성능 모니터링에 필요한 metrics에 대해 이해하고, 4가지 관점(처리량, 지연, Durability, 가용성)에서 성능을 최적화 하는 방안을 정리함. Kafka를 구성하는 3개 모듈(Producer, Broker, Consumer)별로 성능 최적화를 위한 …
[Apache Kafka 모니터링을 위한 Metrics 이해]
Apache Kafka의 상태를 모니터링 하기 위해서는 4개(System(OS), Producer, Broker, Consumer)에서 발생하는 metrics들을 살펴봐야 한다.
이번 글에서는 JVM에서 제공하는 JMX metrics를 중심으로 producer/broker/consumer의 지표를 정리하였다.
모든 지표를 정리하진 않았고, 내 관점에서 유의미한 지표들을 중심으로 이해한 내용임
[Apache Kafka 성능 Configuration 최적화]
성능목표를 4개로 구분(Throughtput, Latency, Durability, Avalibility)하고, 각 목표에 따라 어떤 Kafka configuration의 조정을 어떻게 해야하는지 정리하였다.
튜닝한 파라미터를 적용한 후, 성능테스트를 수행하면서 추출된 Metrics를 모니터링하여 현재 업무에 최적화 되도록 최적화를 수행하는 것이 필요하다.
Cloud here means data and encryption means to secure the data. In this ppt you can get to know about various encryption algorithms which are used to secure the data.
Distributed Database Architecture
Database Links
Distributed Database Administration
Transaction Processing in a Distributed System
Distributed Database Application Development
Character Set Support for Distributed Environments
File Replication : High availability is a desirable feature of a good distributed file system and file replication is the primary mechanism for improving file availability. Replication is a key strategy for improving reliability, fault tolerance and availability. Therefore duplicating files on multiple machines improves availability and performance.
Replicated file : A replicated file is a file that has multiple copies, with each copy located on a separate file server. Each copy of the set of copies that comprises a replicated file is referred to as replica of the replicated file.
Replication is often confused with caching, probably because they both deal with multiple copies of data. The two concepts has the following basic differences:
A replica is associated with server, whereas a cached copy is associated with a client.
The existence of cached copy is primarily dependent on the locality in file access patterns, whereas the existence of a replica normally depends on availability and performance requirements.
Satynarayanana [1992] distinguishes a replicated copy from a cached copy by calling the first-class replicas and second-class replicas respectively
AcceDe Web, a Guide for Accessibility Web Projects, OW2con'16, Paris. OW2
The AcceDe Web set of guides is offering best practices to all the key project stakeholders, including web developers and graphic designers. These documents are based on the experience of a range of seasoned professionals representing web agencies, corporate companies, public agencies and associations. They provide project teams with practical step by step instructions, and project managers with useful project management tools.
OW2con'14 - XLcloud, a demonstation of 3D remote rendering in the cloudOW2
The XLcloud project strives to establish the demonstration of a High Performance Cloud Computing (HPCC) platform based on OpenStack that is designed to run a representative set of compute intensive workloads. Two Use Cases will be demonstrated during this presentation. First, the interventional radiology use case of the XLCloud project has the goal to show that the XLCLoud platform can be used to leverage an application requiring both interaction and high performance computing. This simulator, developed by CEA and Esprimed, allows medical staff to prepare or replay an intervention in a 3D interactive environment (manipulation of the radiological system, position of people and their protections) while having the benefit of precise estimation of the dose they are exposed to through a 3D monte carlo simulation optimized in order to provide results in interactive time. The second use case will be based on cloud gaming and 3D visualization. XLcloud is a three-year long collaborative project funded by the French FSN (Fonds national pour la Société Numérique) programme.
Why no one loves me? Using BI techniques to make my business more attractive,...OW2
The most successful companies are those that can get value and knowledge out of information. We immediately think of Google, Amazon or Microsoft but even a small company has its own data and can access a variety of external information. In this speech we’ll create a use case around a family company that aims at becoming 3.0. So we’ll see how to enhance the corporate data using business intelligence techniques, but also how to use big data technologies to enrich the knowledge, getting data from open data sources, comparing company business with market researches and matching it with socials.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Chubby
1. Chubby Lock Service
Amir H. Payberah
amir@sics.se
Amirkabir University of Technology
(Tehran Polytechnic)
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 1 / 38
2. What is the Problem?
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 2 / 38
3. What is the Problem?
Large distributed system
How to ensure that only one process across a fleet of processes acts
on a resource?
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 3 / 38
4. What is the Problem?
Large distributed system
How to ensure that only one process across a fleet of processes acts
on a resource?
• Ensure only one server can write to a database.
• Ensure that only one server can perform a particular action.
• Ensure that there is a single master that processes all writes.
• ...
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 3 / 38
5. What is the Problem?
All these scenarios need a simple way to coordinate execution of
process to ensure that only one entity is performing an action.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 4 / 38
6. What is the Problem?
All these scenarios need a simple way to coordinate execution of
process to ensure that only one entity is performing an action.
We need agreement (consensus)
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 4 / 38
7. What is the Problem?
All these scenarios need a simple way to coordinate execution of
process to ensure that only one entity is performing an action.
We need agreement (consensus)
Paxos ...
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 4 / 38
8. How Can We Use Paxos
to Solve the Problem
of Coordination?
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 5 / 38
9. Possible Solutions
Building a consensus library
Building a centralized lock service
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 6 / 38
10. Consensus Library vs. Centralized Service
Consensus library
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 7 / 38
11. Consensus Library vs. Centralized Service
Consensus library
• Library code has to be included in every program.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 7 / 38
12. Consensus Library vs. Centralized Service
Consensus library
• Library code has to be included in every program.
• Application developers to be experts in distributed system.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 7 / 38
13. Consensus Library vs. Centralized Service
Consensus library
• Library code has to be included in every program.
• Application developers to be experts in distributed system.
• Need to wait on majority (quorums).
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 7 / 38
14. Consensus Library vs. Centralized Service
Consensus library
• Library code has to be included in every program.
• Application developers to be experts in distributed system.
• Need to wait on majority (quorums).
Centralized lock service
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 7 / 38
15. Consensus Library vs. Centralized Service
Consensus library
• Library code has to be included in every program.
• Application developers to be experts in distributed system.
• Need to wait on majority (quorums).
Centralized lock service
• Clean interface.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 7 / 38
16. Consensus Library vs. Centralized Service
Consensus library
• Library code has to be included in every program.
• Application developers to be experts in distributed system.
• Need to wait on majority (quorums).
Centralized lock service
• Clean interface.
• Service can be modified independently.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 7 / 38
17. Consensus Library vs. Centralized Service
Consensus library
• Library code has to be included in every program.
• Application developers to be experts in distributed system.
• Need to wait on majority (quorums).
Centralized lock service
• Clean interface.
• Service can be modified independently.
• A single client can obtain a lock and make progress (non-quorum
based decisions, the lock service takes care of it)
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 7 / 38
18. Consensus Library vs. Centralized Service
Consensus library
• Library code has to be included in every program.
• Application developers to be experts in distributed system.
• Need to wait on majority (quorums).
Centralized lock service
• Clean interface.
• Service can be modified independently.
• A single client can obtain a lock and make progress (non-quorum
based decisions, the lock service takes care of it)
• Application developers do not have to worry about dealing with
operations, various failure modes debugging etc.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 7 / 38
20. Chubby is a Lock Service
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 9 / 38
21. Chubby
Primary goals: reliability and availability (not high performance)
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 10 / 38
22. Chubby
Primary goals: reliability and availability (not high performance)
Used in Google: GFS, Bigtable, etc.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 10 / 38
23. Chubby Structure
Two main components:
• Server (chubby cell)
• Client library
Communicate via RPC
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 11 / 38
24. Chubby Cell
A small set of servers (replicas)
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 12 / 38
25. Chubby Cell
A small set of servers (replicas)
One is the master (elected from the replicas via Paxos)
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 12 / 38
26. Chubby Cell
A small set of servers (replicas)
One is the master (elected from the replicas via Paxos)
Maintain copies of simple database (replicated state machines)
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 12 / 38
27. Chubby Cell
A small set of servers (replicas)
One is the master (elected from the replicas via Paxos)
Maintain copies of simple database (replicated state machines)
• Only the master initiates reads and writes of this database.
• All other replicas simply copy updates from the master (using the
Paxos protocol).
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 12 / 38
28. Chubby Client
Find the master: sending master location requests to replicas.
All requests are sent directly to the master.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 13 / 38
31. Chubby Operations
Write requests
• The master receives the request.
• Write requests are propagated via the consensus protocol to all
replicas.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 14 / 38
32. Chubby Operations
Write requests
• The master receives the request.
• Write requests are propagated via the consensus protocol to all
replicas.
• Acknowledges when write request reaches the majority of the
replicas
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 14 / 38
33. Chubby Operations
Write requests
• The master receives the request.
• Write requests are propagated via the consensus protocol to all
replicas.
• Acknowledges when write request reaches the majority of the
replicas
Read requests
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 14 / 38
34. Chubby Operations
Write requests
• The master receives the request.
• Write requests are propagated via the consensus protocol to all
replicas.
• Acknowledges when write request reaches the majority of the
replicas
Read requests
• Satisfied by the master alone.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 14 / 38
35. Let’s Go into More Details
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 15 / 38
36. Chubby Interface (1/2)
Chubby exports a unix-like filesystem interface.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 16 / 38
37. Chubby Interface (1/2)
Chubby exports a unix-like filesystem interface.
Tree of files with names separated by slashes (namesapace):
/ls/cell1/aut/cc14:
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 16 / 38
38. Chubby Interface (1/2)
Chubby exports a unix-like filesystem interface.
Tree of files with names separated by slashes (namesapace):
/ls/cell1/aut/cc14:
• 1st component (ls): lock service (common to all names)
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 16 / 38
39. Chubby Interface (1/2)
Chubby exports a unix-like filesystem interface.
Tree of files with names separated by slashes (namesapace):
/ls/cell1/aut/cc14:
• 1st component (ls): lock service (common to all names)
• 2nd component (cell1): the chubby cell name
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 16 / 38
40. Chubby Interface (1/2)
Chubby exports a unix-like filesystem interface.
Tree of files with names separated by slashes (namesapace):
/ls/cell1/aut/cc14:
• 1st component (ls): lock service (common to all names)
• 2nd component (cell1): the chubby cell name
• The rest: the name of the directory and the file (name inside the
cell)
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 16 / 38
41. Chubby Interface (2/2)
Chubby maintains a namespace that contains files and directories,
called nodes.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 17 / 38
42. Chubby Interface (2/2)
Chubby maintains a namespace that contains files and directories,
called nodes.
Clients can create nodes and add contents to nodes.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 17 / 38
43. Chubby Interface (2/2)
Chubby maintains a namespace that contains files and directories,
called nodes.
Clients can create nodes and add contents to nodes.
Support most normal operations:
• create, delete, open, write, ...
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 17 / 38
44. Chubby Interface (2/2)
Chubby maintains a namespace that contains files and directories,
called nodes.
Clients can create nodes and add contents to nodes.
Support most normal operations:
• create, delete, open, write, ...
Clients open nodes to obtain handles that are analogous to unix file
descriptors.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 17 / 38
45. Locks (1/2)
Each Chubby file and directory (node) can act as a reader/writer
lock.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 18 / 38
46. Locks (1/2)
Each Chubby file and directory (node) can act as a reader/writer
lock.
A client handle may hold the lock in two modes: writer (exclusive)
mode or reader (shared) mode.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 18 / 38
47. Locks (1/2)
Each Chubby file and directory (node) can act as a reader/writer
lock.
A client handle may hold the lock in two modes: writer (exclusive)
mode or reader (shared) mode.
• Only one client can hold lock in writer mode.
• Many clients can hold lock in reader mode.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 18 / 38
48. Locks (2/2)
Locks are advisory in Chubby.
• Holding a lock is not necessary to access file.
• Holding a lock does not prevent other clients accessing file.
• Conflicts only with other attempts to acquire the same lock.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 19 / 38
49. Chubby Example (1/2)
Electing a primary (leader) process.
Steps in primary election:
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 20 / 38
50. Chubby Example (1/2)
Electing a primary (leader) process.
Steps in primary election:
• Clients open a lock file and attempt to acquire the lock in write
mode.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 20 / 38
51. Chubby Example (1/2)
Electing a primary (leader) process.
Steps in primary election:
• Clients open a lock file and attempt to acquire the lock in write
mode.
• One client succeeds (becomes the primary) and writes its
name/identity into the file.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 20 / 38
52. Chubby Example (1/2)
Electing a primary (leader) process.
Steps in primary election:
• Clients open a lock file and attempt to acquire the lock in write
mode.
• One client succeeds (becomes the primary) and writes its
name/identity into the file.
• Other clients fail (become replicas) and discover the name of the
primary by reading the file.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 20 / 38
53. Chubby Example (1/2)
Electing a primary (leader) process.
Steps in primary election:
• Clients open a lock file and attempt to acquire the lock in write
mode.
• One client succeeds (becomes the primary) and writes its
name/identity into the file.
• Other clients fail (become replicas) and discover the name of the
primary by reading the file.
• Primary obtains sequencer and passes it to servers (servers can
insure that the elected primary is still valid).
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 20 / 38
54. Chubby Example (2/2)
Leader election
Open("/ls/foo/OurServicePrimary", "write mode")
if (successful) { // primary
SetContents(primary_identity)
} else { // replica
Open("/ls/foo/OurServicePrimary", "read mode",
"file-modification event")
when notified of file modification:
primary = GetContentsAndStat()
}
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 21 / 38
56. Events
Chubby clients may subscribe to many events when they create a
handle.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 23 / 38
57. Events
Chubby clients may subscribe to many events when they create a
handle.
Events include:
• File contents modified
• Child node added, removed, or modified
• Chubby master failed over
• Handle has become invalid
• Lock acquired
• Conflicting lock requested from another client
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 23 / 38
58. Locking - Problem
After acquiring a lock and issuing a request (R1) a client may fail.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 24 / 38
59. Locking - Problem
After acquiring a lock and issuing a request (R1) a client may fail.
Another client may acquire the lock and issue its own request (R2).
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 24 / 38
60. Locking - Problem
After acquiring a lock and issuing a request (R1) a client may fail.
Another client may acquire the lock and issue its own request (R2).
R1 arrive later at the server and be acted upon (possible inconsis-
tency).
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 24 / 38
61. Locking - Solutions (1/3)
Solution 1: virtual time
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 25 / 38
62. Locking - Solutions (1/3)
Solution 1: virtual time
• But, it is costly to introduce sequence numbers into all the
interactions.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 25 / 38
63. Locking - Solutions (2/3)
Solution 2: sequencers
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 26 / 38
64. Locking - Solutions (2/3)
Solution 2: sequencers
• Sequence numbers are introduced into only those interactions that
make use of locks.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 26 / 38
65. Locking - Solutions (2/3)
Solution 2: sequencers
• Sequence numbers are introduced into only those interactions that
make use of locks.
• A lock holder can obtain a sequencer from Chubby.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 26 / 38
66. Locking - Solutions (2/3)
Solution 2: sequencers
• Sequence numbers are introduced into only those interactions that
make use of locks.
• A lock holder can obtain a sequencer from Chubby.
• It attaches the sequencer to any requests that it sends to other
servers (e.g., Bigtable)
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 26 / 38
67. Locking - Solutions (2/3)
Solution 2: sequencers
• Sequence numbers are introduced into only those interactions that
make use of locks.
• A lock holder can obtain a sequencer from Chubby.
• It attaches the sequencer to any requests that it sends to other
servers (e.g., Bigtable)
• The other servers can verify the sequencer information
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 26 / 38
68. Locking - Solutions (3/3)
Solution 3: lock-delay
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 27 / 38
69. Locking - Solutions (3/3)
Solution 3: lock-delay
• Correctly released locks are immediately available.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 27 / 38
70. Locking - Solutions (3/3)
Solution 3: lock-delay
• Correctly released locks are immediately available.
• If a lock becomes free because holder failed or becomes inaccessible,
lock cannot be claimed by another client until lock-delay expires.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 27 / 38
71. Caching
To reduce read traffic, Chubby clients cache file data and node
meta-data.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 28 / 38
72. Caching
To reduce read traffic, Chubby clients cache file data and node
meta-data.
Write-through: write is done synchronously both to the cache and
to the primary copy.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 28 / 38
73. Caching
To reduce read traffic, Chubby clients cache file data and node
meta-data.
Write-through: write is done synchronously both to the cache and
to the primary copy.
Master will invalidate cached copies upon a write request.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 28 / 38
74. Caching
To reduce read traffic, Chubby clients cache file data and node
meta-data.
Write-through: write is done synchronously both to the cache and
to the primary copy.
Master will invalidate cached copies upon a write request.
The client also can allow its cache lease to expire.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 28 / 38
75. Session Lease (1/3)
Lease: a promise by one party to abide by an agreement for a given
interval of time unless the promise is explicitly revoked.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 29 / 38
76. Session Lease (1/3)
Lease: a promise by one party to abide by an agreement for a given
interval of time unless the promise is explicitly revoked.
Session: a relationship between a Chubby cell and a Chubby client.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 29 / 38
77. Session Lease (1/3)
Lease: a promise by one party to abide by an agreement for a given
interval of time unless the promise is explicitly revoked.
Session: a relationship between a Chubby cell and a Chubby client.
Session lease: interval during which client’s cached items (handles,
locks, files) are valid.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 29 / 38
78. Session Lease (1/3)
Lease: a promise by one party to abide by an agreement for a given
interval of time unless the promise is explicitly revoked.
Session: a relationship between a Chubby cell and a Chubby client.
Session lease: interval during which client’s cached items (handles,
locks, files) are valid.
Session maintained through KeepAlives messages.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 29 / 38
79. Session Lease (2/3)
If client’s local lease expires (happens when a master fails over)
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 30 / 38
80. Session Lease (2/3)
If client’s local lease expires (happens when a master fails over)
• Client disables cache.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 30 / 38
81. Session Lease (2/3)
If client’s local lease expires (happens when a master fails over)
• Client disables cache.
• Session in jeopardy, client waits in grace period (45s).
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 30 / 38
82. Session Lease (2/3)
If client’s local lease expires (happens when a master fails over)
• Client disables cache.
• Session in jeopardy, client waits in grace period (45s).
• Sends jeopardy event to application.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 30 / 38
83. Session Lease (2/3)
If client’s local lease expires (happens when a master fails over)
• Client disables cache.
• Session in jeopardy, client waits in grace period (45s).
• Sends jeopardy event to application.
• Application can suspend activity.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 30 / 38
84. Session Lease (3/3)
Client attempts to exchange KeepAlive messages with master during
grace period.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 31 / 38
85. Session Lease (3/3)
Client attempts to exchange KeepAlive messages with master during
grace period.
• Succeed: re-enables cache; send safe event to application
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 31 / 38
86. Session Lease (3/3)
Client attempts to exchange KeepAlive messages with master during
grace period.
• Succeed: re-enables cache; send safe event to application
• Failed: discards cache; sends expired event to application
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 31 / 38
87. Scaling
Reducing communication with the master.
Two techniques:
• Proxies
• Partitioning
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 32 / 38
88. Scaling - Proxies
Proxy is a trusted process that pass requests from other clients to
a Chubby cell.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 33 / 38
89. Scaling - Proxies
Proxy is a trusted process that pass requests from other clients to
a Chubby cell.
Can handle KeepAlives and reads → reduce the master load.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 33 / 38
90. Scaling - Proxies
Proxy is a trusted process that pass requests from other clients to
a Chubby cell.
Can handle KeepAlives and reads → reduce the master load.
Cannot reduce write loads, but they are << 1% of workload.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 33 / 38
91. Scaling - Proxies
Proxy is a trusted process that pass requests from other clients to
a Chubby cell.
Can handle KeepAlives and reads → reduce the master load.
Cannot reduce write loads, but they are << 1% of workload.
Introduces another point of failure.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 33 / 38
93. Scaling - Partitioning
Namespace partitioned between servers.
N partitions, each with master and replicas
Node D/C stored on P(D/C) = hash(D) mod N
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 34 / 38
95. Summary
Library vs. Service
Chubby: coarse-grained lock service
Chubby cell and clients
Unix-like interface
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 36 / 38
96. References:
M. Burrows, The Chubby lock service for loosely-coupled distributed
systems, OSDI, 2006.
Amir H. Payberah (Tehran Polytechnic) Chubby 1393/7/5 37 / 38