SlideShare a Scribd company logo
Advanced Topics in
        Distributed Systems

   The Chubby lock service for loosely-
       coupled distributed systems
              Mike Burrows, Google Inc.




Presented by: Ioanna Tsalouchidou
                                          1
Outline
●   Introduction
●   Design
●   Scaling
●   Usage
●   Summary




                             2
Introduction
●   What is Chubby?
       –   An engineering effort by Google
       –   Coarse-grained lock service
       –   Loosely-coupled distributed systems
       –   Large number of small machines
       –   High-speed network (1Gbit/s Ethernet)
       –   Availability and Reliability Vs. Performance


                                                          3
Outline
●   Introduction - Motivation
●   Design
●   Scaling
●   Usage
●   Summary




                                4
Design
             le
         iona
     Rat

                                                                         ks                   Se
                                                                     Loc                        qu
                                                                                                   en
                   Sy
                      st   em                                                                        ce
                                str                                                                       rs
                                      uc
                                        tur                                     rs
                                              e
                                                                          handle
  File
                                                                                     Fa         Backup
                             es                                                        il-o
                       pAliv                                                               ve
                    Kee                                                                      rs
                                                  Dir                  Mirroring
                                                      ec
                                                           tor                                Events
                                                               ies
      ns
Sessio

                  Ca                                      se
                     ch                               a Ba                     API
                       ing                        Dat
                                                                                                               5
Rationale
●   Lock service library Vs. Paxos client library
        –   Maintain existing program structure
        –   Advertising the results
        –   Familiar interface to programmers
        –   Reduces the # of servers needed for progress


●   Design decision
        –   Small-files service (for primaries)
        –   Event notification
        –   Consistent caching                             6
Rationale

●   Coarse-grained locks
       –   Less load in the lock server
       –   Less delay caused by lock server unavailability
       –   Survive lock server failures
       –   Many clients served by less servers
●   Fine-grained locks
       –   Lock-server unavailability → many clients stall

                                                             7
System Structure




●   One Chubby cell → five servers
●   Client ↔ Server: via client library
●   Server and library communicate via RPC
                                             8
●   Optional: proxy server
Chubby Cell

●   Set of five servers (replicas)




                                          :-)
●   Distributed consensus protocol
●   One master among replicas
●   Master lease → periodically renewed




                                                9
Chubby Client


                ●   Clients find the master between replicas
                ●   Client requests to master
                ●   Write requests via consensus protocol
                    among replicas
                ●   Read requests handled by master

App   Library

                                                               10
Files, directories and handles
●   Interface: similar to UNIX file system
     /ls/foo/wombat/pouch




                                             11
Files, directories and handles
●   Interface: similar to UNIX file system
     /ls/foo/wombat/pouch
                                 Stands for lock service.
                               Common to all Chubby names




                                                            12
Files, directories and handles
●   Interface: similar to UNIX file system
     /ls/foo/wombat/pouch
                                  Stands for lock service.
                                Common to all Chubby names


                             The name of a Chubby cell, which is
                               resolved to one or more servers
                                    through a DNS lookup




                                                                   13
Files, directories and handles
●   Interface: similar to UNIX file system
     /ls/foo/wombat/pouch
                                  Stands for lock service.
                                Common to all Chubby names


                             The name of a Chubby cell, which is
                               resolved to one or more servers
                                    through a DNS lookup



                            The name of the directory and the file

                                                                     14
Files, directories and handles
●   Interface: similar to UNIX file system
     /ls/foo/wombat/pouch
●   Name space: files and directories called nodes
        –   Ephemeral
        –   Permanent
●   Clients open nodes to obtain Handles
        –   ~ UNIX file descriptors
        –   Subscription to events
                                                     15
Locks

●   Any node can act as a lock
●   Advisory locks (no mandatory locks)
●   Client handles hold
       –   Exclusive locks (write)
       –   Shared locks (read)
●   No write permission → no influence to writers

                                                    16
Sequencers

●   Sequence numbers to interactions that use
    locks
●   Lock holder requests a sequencer
●   Opaque bite-string → state of lock
       –   Name of lock
       –   Mode which was acquired
       –   Lock generation number

                                                17
Caching

●   To reduce read traffic
        –   File data
        –   Meta-data
        –   File absence
        –   Consistent, write-through cache




                                              18
Fail-overs




             19
Fail-overs




             20
Fail-overs
OOOPS




              21
Fail-overs
OOOPS




              22
Outline
●   Introduction - Motivation
●   Design
●   Scaling
●   Usage
●   Summary




                                24
Current scaling techniques
●   Reduce communication with the master
       –   Client caching
       –   Open handles
●   Use a nearby cell (found with DNS)
●   Increase lease time (12s → 60s)
●   Protocol-conversion servers
       –   Translate Chubby to less-complex


                                              25
Future scaling techniques
●   Proxies
        –   Handling KeepAlive requests
        –   Read requests
●   Partitioning
        –   Enable large Chubby cells
        –   Little communication between partitions



                                                      26
Outline
●   Introduction
●   Design
●   Scaling
●   Usage
●   Summary




                             27
Usage

●   Initially as a lock service
●   Most popular use as a name service
●   GFS: to appoint a master server
●   Bigtable
        –   Master election
        –   Master discovers its controlling servers
        –   Clients to find their master

                                                       28
Summary
●   Distributed lock service
        –   Coarse grained synchronization
●   Based on existing ideas and algorithms
●   Primary internal name service
●   Reliable but low-volume storage




                                             29
Advanced Topics in
       Distributed Systems

   The Chubby lock service for loosely-
       coupled distributed systems
             Mike Burrows, Google Inc.




Presented by: Ιωάννα Τσαλουχίδου
                                          30

More Related Content

What's hot

SSD - Solid State Drive PPT by Shyam jos
SSD - Solid State Drive PPT by Shyam jos SSD - Solid State Drive PPT by Shyam jos
SSD - Solid State Drive PPT by Shyam jos
Shyam Jos
 
MRI Energy-Efficient Cloud Computing
MRI Energy-Efficient Cloud ComputingMRI Energy-Efficient Cloud Computing
MRI Energy-Efficient Cloud Computing
Roger Rafanell Mas
 
LOAD BALANCING ALGORITHMS
LOAD BALANCING ALGORITHMSLOAD BALANCING ALGORITHMS
LOAD BALANCING ALGORITHMS
tanmayshah95
 
Integrating Apache Kafka and Elastic Using the Connect Framework
Integrating Apache Kafka and Elastic Using the Connect FrameworkIntegrating Apache Kafka and Elastic Using the Connect Framework
Integrating Apache Kafka and Elastic Using the Connect Framework
confluent
 
HBase and Hadoop at Adobe
HBase and Hadoop at AdobeHBase and Hadoop at Adobe
HBase and Hadoop at Adobe
Cosmin Lehene
 
Multithreading computer architecture
 Multithreading computer architecture  Multithreading computer architecture
Multithreading computer architecture
Haris456
 
Aix overview
Aix overviewAix overview
Aix overview
Raja Waseem Akhtar
 
Cloud computing
Cloud computingCloud computing
Cloud computing
Ankita Khadatkar
 
Raid
RaidRaid
Cloud computing 8 cloud service models
Cloud computing 8 cloud service modelsCloud computing 8 cloud service models
Cloud computing 8 cloud service models
Vaibhav Khanna
 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVM
Pradeep Kumar
 
Kafka 101
Kafka 101Kafka 101
Kafka 101
Clement Demonchy
 
Redis vs Infinispan | DevNation Tech Talk
Redis vs Infinispan | DevNation Tech TalkRedis vs Infinispan | DevNation Tech Talk
Redis vs Infinispan | DevNation Tech Talk
Red Hat Developers
 
IBM Spectrum Scale Security
IBM Spectrum Scale Security IBM Spectrum Scale Security
IBM Spectrum Scale Security
Sandeep Patil
 
Storage area network
Storage area networkStorage area network
Storage area network
Neha Agarwal
 
Memory - RAM and its types
Memory - RAM and its typesMemory - RAM and its types
Memory - RAM and its types
Abhay Matthew
 
Much Faster Networking
Much Faster NetworkingMuch Faster Networking
Much Faster Networking
C4Media
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
Jemin Patel
 
IBM FlashSystem 7300 Product Guide.pdf
IBM FlashSystem 7300
Product Guide.pdfIBM FlashSystem 7300
Product Guide.pdf
IBM FlashSystem 7300 Product Guide.pdf
Freelance Architect Informations systems
 
Ibm aix
Ibm aixIbm aix

What's hot (20)

SSD - Solid State Drive PPT by Shyam jos
SSD - Solid State Drive PPT by Shyam jos SSD - Solid State Drive PPT by Shyam jos
SSD - Solid State Drive PPT by Shyam jos
 
MRI Energy-Efficient Cloud Computing
MRI Energy-Efficient Cloud ComputingMRI Energy-Efficient Cloud Computing
MRI Energy-Efficient Cloud Computing
 
LOAD BALANCING ALGORITHMS
LOAD BALANCING ALGORITHMSLOAD BALANCING ALGORITHMS
LOAD BALANCING ALGORITHMS
 
Integrating Apache Kafka and Elastic Using the Connect Framework
Integrating Apache Kafka and Elastic Using the Connect FrameworkIntegrating Apache Kafka and Elastic Using the Connect Framework
Integrating Apache Kafka and Elastic Using the Connect Framework
 
HBase and Hadoop at Adobe
HBase and Hadoop at AdobeHBase and Hadoop at Adobe
HBase and Hadoop at Adobe
 
Multithreading computer architecture
 Multithreading computer architecture  Multithreading computer architecture
Multithreading computer architecture
 
Aix overview
Aix overviewAix overview
Aix overview
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Raid
RaidRaid
Raid
 
Cloud computing 8 cloud service models
Cloud computing 8 cloud service modelsCloud computing 8 cloud service models
Cloud computing 8 cloud service models
 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVM
 
Kafka 101
Kafka 101Kafka 101
Kafka 101
 
Redis vs Infinispan | DevNation Tech Talk
Redis vs Infinispan | DevNation Tech TalkRedis vs Infinispan | DevNation Tech Talk
Redis vs Infinispan | DevNation Tech Talk
 
IBM Spectrum Scale Security
IBM Spectrum Scale Security IBM Spectrum Scale Security
IBM Spectrum Scale Security
 
Storage area network
Storage area networkStorage area network
Storage area network
 
Memory - RAM and its types
Memory - RAM and its typesMemory - RAM and its types
Memory - RAM and its types
 
Much Faster Networking
Much Faster NetworkingMuch Faster Networking
Much Faster Networking
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
IBM FlashSystem 7300 Product Guide.pdf
IBM FlashSystem 7300
Product Guide.pdfIBM FlashSystem 7300
Product Guide.pdf
IBM FlashSystem 7300 Product Guide.pdf
 
Ibm aix
Ibm aixIbm aix
Ibm aix
 

Similar to The Chubby lock service for loosely- coupled distributed systems

Bigtable and Dynamo
Bigtable and DynamoBigtable and Dynamo
Bigtable and Dynamo
Iraklis Psaroudakis
 
Concurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple SpacesConcurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple Spaces
luccastera
 
Hadoop Meetup Jan 2019 - Overview of Ozone
Hadoop Meetup Jan 2019 - Overview of OzoneHadoop Meetup Jan 2019 - Overview of Ozone
Hadoop Meetup Jan 2019 - Overview of Ozone
Erik Krogen
 
Memory
MemoryMemory
Memory
Mohd Arif
 
06threadsimp
06threadsimp06threadsimp
06threadsimp
Zhiwen Guo
 
RubyWorld 2011
RubyWorld 2011RubyWorld 2011
RubyWorld 2011
Derek Collison
 
Ioppt
IopptIoppt
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex
Espen Brækken
 
Paravirtualized File Systems
Paravirtualized File SystemsParavirtualized File Systems
Paravirtualized File Systems
Eric Van Hensbergen
 
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e..."JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
eLiberatica
 
Kafka on ZFS: Better Living Through Filesystems
Kafka on ZFS: Better Living Through Filesystems Kafka on ZFS: Better Living Through Filesystems
Kafka on ZFS: Better Living Through Filesystems
confluent
 
You got ur Erlang in my Ruby
You got ur Erlang in my RubyYou got ur Erlang in my Ruby
You got ur Erlang in my Ruby
elliando dias
 
Sly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of ProgrammingSly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of Programming
Stefan Marr
 
LXC Containers and AUFs
LXC Containers and AUFsLXC Containers and AUFs
LXC Containers and AUFs
Docker, Inc.
 
OSDC 2016 - Interesting things you can do with ZFS by Allan Jude&Benedict Reu...
OSDC 2016 - Interesting things you can do with ZFS by Allan Jude&Benedict Reu...OSDC 2016 - Interesting things you can do with ZFS by Allan Jude&Benedict Reu...
OSDC 2016 - Interesting things you can do with ZFS by Allan Jude&Benedict Reu...
NETWAYS
 
Lightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFSLightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFS
Jérôme Petazzoni
 
Intro
IntroIntro
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2
aspyker
 
Building a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre Zemb
Building a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre ZembBuilding a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre Zemb
Building a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre Zemb
StreamNative
 
Linux on System z – disk I/O performance
Linux on System z – disk I/O performanceLinux on System z – disk I/O performance
Linux on System z – disk I/O performance
IBM India Smarter Computing
 

Similar to The Chubby lock service for loosely- coupled distributed systems (20)

Bigtable and Dynamo
Bigtable and DynamoBigtable and Dynamo
Bigtable and Dynamo
 
Concurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple SpacesConcurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple Spaces
 
Hadoop Meetup Jan 2019 - Overview of Ozone
Hadoop Meetup Jan 2019 - Overview of OzoneHadoop Meetup Jan 2019 - Overview of Ozone
Hadoop Meetup Jan 2019 - Overview of Ozone
 
Memory
MemoryMemory
Memory
 
06threadsimp
06threadsimp06threadsimp
06threadsimp
 
RubyWorld 2011
RubyWorld 2011RubyWorld 2011
RubyWorld 2011
 
Ioppt
IopptIoppt
Ioppt
 
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex
 
Paravirtualized File Systems
Paravirtualized File SystemsParavirtualized File Systems
Paravirtualized File Systems
 
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e..."JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
 
Kafka on ZFS: Better Living Through Filesystems
Kafka on ZFS: Better Living Through Filesystems Kafka on ZFS: Better Living Through Filesystems
Kafka on ZFS: Better Living Through Filesystems
 
You got ur Erlang in my Ruby
You got ur Erlang in my RubyYou got ur Erlang in my Ruby
You got ur Erlang in my Ruby
 
Sly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of ProgrammingSly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of Programming
 
LXC Containers and AUFs
LXC Containers and AUFsLXC Containers and AUFs
LXC Containers and AUFs
 
OSDC 2016 - Interesting things you can do with ZFS by Allan Jude&Benedict Reu...
OSDC 2016 - Interesting things you can do with ZFS by Allan Jude&Benedict Reu...OSDC 2016 - Interesting things you can do with ZFS by Allan Jude&Benedict Reu...
OSDC 2016 - Interesting things you can do with ZFS by Allan Jude&Benedict Reu...
 
Lightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFSLightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFS
 
Intro
IntroIntro
Intro
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2
 
Building a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre Zemb
Building a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre ZembBuilding a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre Zemb
Building a Messaging Solutions for OVHcloud with Apache Pulsar_Pierre Zemb
 
Linux on System z – disk I/O performance
Linux on System z – disk I/O performanceLinux on System z – disk I/O performance
Linux on System z – disk I/O performance
 

More from Ioanna Tsalouchidou

Scalable Dynamic Graph Summarization
Scalable Dynamic Graph SummarizationScalable Dynamic Graph Summarization
Scalable Dynamic Graph Summarization
Ioanna Tsalouchidou
 
A Distributed Self-management Service
A Distributed Self-management ServiceA Distributed Self-management Service
A Distributed Self-management Service
Ioanna Tsalouchidou
 
Observation, Experiment, Conclusion: the Three Princes of Serendip_essay_Phil...
Observation, Experiment, Conclusion: the Three Princes of Serendip_essay_Phil...Observation, Experiment, Conclusion: the Three Princes of Serendip_essay_Phil...
Observation, Experiment, Conclusion: the Three Princes of Serendip_essay_Phil...
Ioanna Tsalouchidou
 
7.howcompanieslearnyoursecrets 120318193259-phpapp01
7.howcompanieslearnyoursecrets 120318193259-phpapp017.howcompanieslearnyoursecrets 120318193259-phpapp01
7.howcompanieslearnyoursecrets 120318193259-phpapp01
Ioanna Tsalouchidou
 
Simulation vs experimental-testbeds_ioanna_tsalouchidou
Simulation vs experimental-testbeds_ioanna_tsalouchidouSimulation vs experimental-testbeds_ioanna_tsalouchidou
Simulation vs experimental-testbeds_ioanna_tsalouchidou
Ioanna Tsalouchidou
 
Intelligent placement of_datacenters_for_internet_services_ioanna_tsalouchidou
Intelligent placement of_datacenters_for_internet_services_ioanna_tsalouchidouIntelligent placement of_datacenters_for_internet_services_ioanna_tsalouchidou
Intelligent placement of_datacenters_for_internet_services_ioanna_tsalouchidou
Ioanna Tsalouchidou
 
Cap in depth
Cap in depthCap in depth
Cap in depth
Ioanna Tsalouchidou
 
Rest vs soap
Rest vs soapRest vs soap
Rest vs soap
Ioanna Tsalouchidou
 

More from Ioanna Tsalouchidou (8)

Scalable Dynamic Graph Summarization
Scalable Dynamic Graph SummarizationScalable Dynamic Graph Summarization
Scalable Dynamic Graph Summarization
 
A Distributed Self-management Service
A Distributed Self-management ServiceA Distributed Self-management Service
A Distributed Self-management Service
 
Observation, Experiment, Conclusion: the Three Princes of Serendip_essay_Phil...
Observation, Experiment, Conclusion: the Three Princes of Serendip_essay_Phil...Observation, Experiment, Conclusion: the Three Princes of Serendip_essay_Phil...
Observation, Experiment, Conclusion: the Three Princes of Serendip_essay_Phil...
 
7.howcompanieslearnyoursecrets 120318193259-phpapp01
7.howcompanieslearnyoursecrets 120318193259-phpapp017.howcompanieslearnyoursecrets 120318193259-phpapp01
7.howcompanieslearnyoursecrets 120318193259-phpapp01
 
Simulation vs experimental-testbeds_ioanna_tsalouchidou
Simulation vs experimental-testbeds_ioanna_tsalouchidouSimulation vs experimental-testbeds_ioanna_tsalouchidou
Simulation vs experimental-testbeds_ioanna_tsalouchidou
 
Intelligent placement of_datacenters_for_internet_services_ioanna_tsalouchidou
Intelligent placement of_datacenters_for_internet_services_ioanna_tsalouchidouIntelligent placement of_datacenters_for_internet_services_ioanna_tsalouchidou
Intelligent placement of_datacenters_for_internet_services_ioanna_tsalouchidou
 
Cap in depth
Cap in depthCap in depth
Cap in depth
 
Rest vs soap
Rest vs soapRest vs soap
Rest vs soap
 

The Chubby lock service for loosely- coupled distributed systems

  • 1. Advanced Topics in Distributed Systems The Chubby lock service for loosely- coupled distributed systems Mike Burrows, Google Inc. Presented by: Ioanna Tsalouchidou 1
  • 2. Outline ● Introduction ● Design ● Scaling ● Usage ● Summary 2
  • 3. Introduction ● What is Chubby? – An engineering effort by Google – Coarse-grained lock service – Loosely-coupled distributed systems – Large number of small machines – High-speed network (1Gbit/s Ethernet) – Availability and Reliability Vs. Performance 3
  • 4. Outline ● Introduction - Motivation ● Design ● Scaling ● Usage ● Summary 4
  • 5. Design le iona Rat ks Se Loc qu en Sy st em ce str rs uc tur rs e handle File Fa Backup es il-o pAliv ve Kee rs Dir Mirroring ec tor Events ies ns Sessio Ca se ch a Ba API ing Dat 5
  • 6. Rationale ● Lock service library Vs. Paxos client library – Maintain existing program structure – Advertising the results – Familiar interface to programmers – Reduces the # of servers needed for progress ● Design decision – Small-files service (for primaries) – Event notification – Consistent caching 6
  • 7. Rationale ● Coarse-grained locks – Less load in the lock server – Less delay caused by lock server unavailability – Survive lock server failures – Many clients served by less servers ● Fine-grained locks – Lock-server unavailability → many clients stall 7
  • 8. System Structure ● One Chubby cell → five servers ● Client ↔ Server: via client library ● Server and library communicate via RPC 8 ● Optional: proxy server
  • 9. Chubby Cell ● Set of five servers (replicas) :-) ● Distributed consensus protocol ● One master among replicas ● Master lease → periodically renewed 9
  • 10. Chubby Client ● Clients find the master between replicas ● Client requests to master ● Write requests via consensus protocol among replicas ● Read requests handled by master App Library 10
  • 11. Files, directories and handles ● Interface: similar to UNIX file system /ls/foo/wombat/pouch 11
  • 12. Files, directories and handles ● Interface: similar to UNIX file system /ls/foo/wombat/pouch Stands for lock service. Common to all Chubby names 12
  • 13. Files, directories and handles ● Interface: similar to UNIX file system /ls/foo/wombat/pouch Stands for lock service. Common to all Chubby names The name of a Chubby cell, which is resolved to one or more servers through a DNS lookup 13
  • 14. Files, directories and handles ● Interface: similar to UNIX file system /ls/foo/wombat/pouch Stands for lock service. Common to all Chubby names The name of a Chubby cell, which is resolved to one or more servers through a DNS lookup The name of the directory and the file 14
  • 15. Files, directories and handles ● Interface: similar to UNIX file system /ls/foo/wombat/pouch ● Name space: files and directories called nodes – Ephemeral – Permanent ● Clients open nodes to obtain Handles – ~ UNIX file descriptors – Subscription to events 15
  • 16. Locks ● Any node can act as a lock ● Advisory locks (no mandatory locks) ● Client handles hold – Exclusive locks (write) – Shared locks (read) ● No write permission → no influence to writers 16
  • 17. Sequencers ● Sequence numbers to interactions that use locks ● Lock holder requests a sequencer ● Opaque bite-string → state of lock – Name of lock – Mode which was acquired – Lock generation number 17
  • 18. Caching ● To reduce read traffic – File data – Meta-data – File absence – Consistent, write-through cache 18
  • 23. Outline ● Introduction - Motivation ● Design ● Scaling ● Usage ● Summary 24
  • 24. Current scaling techniques ● Reduce communication with the master – Client caching – Open handles ● Use a nearby cell (found with DNS) ● Increase lease time (12s → 60s) ● Protocol-conversion servers – Translate Chubby to less-complex 25
  • 25. Future scaling techniques ● Proxies – Handling KeepAlive requests – Read requests ● Partitioning – Enable large Chubby cells – Little communication between partitions 26
  • 26. Outline ● Introduction ● Design ● Scaling ● Usage ● Summary 27
  • 27. Usage ● Initially as a lock service ● Most popular use as a name service ● GFS: to appoint a master server ● Bigtable – Master election – Master discovers its controlling servers – Clients to find their master 28
  • 28. Summary ● Distributed lock service – Coarse grained synchronization ● Based on existing ideas and algorithms ● Primary internal name service ● Reliable but low-volume storage 29
  • 29. Advanced Topics in Distributed Systems The Chubby lock service for loosely- coupled distributed systems Mike Burrows, Google Inc. Presented by: Ιωάννα Τσαλουχίδου 30