Lecture: ¡ ¡ ¡ ¡ ¡ ¡ ¡ Google ¡Chubby ¡lock ¡service ¡ ZooKeeper h#p://research.google.com/archive/chubby.html ¡ i am your father ! 10/15/2014 ¡ Romain ¡Jaco7n ¡ romain.jaco9n@orange.fr ¡ Chub hubby y MA MASTER STER
Agenda ¡ • Introduc7on ¡ Design ¡ • Mechanisms ¡for ¡scaling ¡ • Experience ¡ • Summary ¡ • The ¡“Part-‑Time” ¡Parliament ¡ 2 ¡ – ¡Leslie ¡Lamport ¡
Introduc9on ¡ Abstract ¡ Chubby ¡lock ¡service ¡is ¡intended ¡for ¡use ¡within ¡a ¡loosely-‑coupled ¡distributed ¡system ¡consis7ng ¡ • large ¡number ¡of ¡machines ¡(10.000) ¡connected ¡by ¡a ¡high-‑speed ¡network ¡ Provides ¡coarse-‑grained ¡locking ¡ – And ¡reliable ¡(low-‑volume) ¡storage ¡ – Chubby ¡provides ¡an ¡interface ¡much ¡like ¡a ¡distributed ¡file ¡system ¡with ¡advisory ¡locks ¡ • Whole ¡file ¡read ¡and ¡writes ¡opera9on ¡(no ¡seek) ¡ – Advisory ¡locks ¡ – No9fica9on ¡of ¡various ¡events ¡such ¡as ¡file ¡modifica9on ¡ – Design ¡emphasis ¡ • Availability ¡ – Reliability ¡ – But ¡not ¡for ¡high ¡performance ¡/ ¡high ¡throughput ¡ – Chubby ¡uses ¡asynchronous ¡consensus: ¡PAXOS ¡with ¡lease ¡7mers ¡to ¡ensure ¡liveness ¡ • 3 ¡
Agenda ¡ • Introduc9on ¡ Design ¡ • Mechanisms ¡for ¡scaling ¡ • Experience ¡ • Summary ¡ • “Death ¡Star ¡tea ¡infuser” ¡ 4 ¡
Design ¡ Google’s ¡ra7onale ¡(2006) ¡ ¡ Design ¡choice: ¡Lock ¡Service ¡or ¡ Client ¡PAXOS ¡Library ¡? ¡ Initial Death Star design � Client ¡PAXOS ¡Library ¡? ¡ • Depend ¡on ¡NO ¡other ¡servers ¡(besides ¡the ¡name ¡service ¡…) ¡ – Provide ¡a ¡standard ¡framework ¡for ¡programmers ¡ – Lock ¡Service ¡? ¡ • Make ¡it ¡easier ¡to ¡add ¡availability ¡to ¡a ¡prototype, ¡and ¡to ¡maintain ¡exis9ng ¡program ¡structure ¡and ¡communica9on ¡pa#erns ¡ – Reduces ¡the ¡number ¡of ¡servers ¡on ¡which ¡a ¡client ¡depends ¡by ¡offering ¡both ¡a ¡name ¡service ¡with ¡consistent ¡client ¡caching ¡and ¡ – allowing ¡clients ¡to ¡store ¡and ¡fetch ¡small ¡quan99es ¡of ¡data ¡ Lock-‑based ¡interface ¡is ¡more ¡familiar ¡to ¡programmers ¡ – Lock ¡service ¡use ¡several ¡replicas ¡to ¡achieve ¡high ¡availability ¡(= ¡quorums), ¡but ¡even ¡a ¡single ¡client ¡can ¡obtain ¡lock ¡and ¡make ¡ – progress ¡safely ¡ à ¡ Lock ¡service ¡reduces ¡the ¡number ¡of ¡servers ¡needed ¡for ¡a ¡reliable ¡client ¡system ¡to ¡make ¡progress ¡ 5 ¡
Design ¡ Google’s ¡ra7onale ¡(2006) ¡ Two ¡key ¡design ¡decisions ¡ • Google ¡chooses ¡lock ¡service ¡ ( ¡ but ¡also ¡provide ¡a ¡PAXOS ¡client ¡library ¡independently ¡from ¡Chubby ¡for ¡specific ¡projects ¡ ) ¡ – Serve ¡small ¡files ¡ to ¡permit ¡elected ¡primaries ¡( ¡= ¡client ¡applica9on ¡masters ¡) ¡to ¡adver9se ¡themselves ¡and ¡their ¡parameters ¡ – Decisions ¡based ¡on ¡Google's ¡expected ¡usage ¡and ¡environment ¡ • Allow ¡ thousands ¡of ¡clients ¡to ¡observe ¡Chubby ¡files ¡ à ¡ Events ¡no7fica7on ¡mechanism ¡ to ¡avoid ¡polling ¡by ¡clients ¡that ¡wish ¡to ¡ – know ¡change ¡ Consistent ¡caching ¡seman7cs ¡prefered ¡by ¡developers ¡and ¡caching ¡of ¡files ¡protects ¡lock ¡service ¡from ¡intense ¡polling ¡ – Security ¡mechanisms ¡ ( ¡access ¡control ¡) ¡ – Provide ¡only ¡coarse-‑grained ¡locks ¡ ( ¡long ¡dura9on ¡lock ¡= ¡low ¡lock-‑acquisi9on ¡rate ¡= ¡less ¡load ¡on ¡the ¡lock ¡server ¡) ¡ – 6 ¡
Design ¡ System ¡structure ¡ • Two ¡main ¡components ¡that ¡communicate ¡via ¡RPC ¡ – A ¡replica ¡server ¡ – A ¡library ¡linked ¡against ¡client ¡applica9ons ¡ • A ¡Chubby ¡cell ¡consists ¡of ¡small ¡set ¡of ¡servers ¡( ¡typically ¡5 ¡) ¡knows ¡as ¡replicas ¡ – Replicas ¡use ¡a ¡distributed ¡consensus ¡protocol ¡( ¡ PAXOS ¡) ¡to ¡elect ¡a ¡master ¡and ¡replicate ¡logs ¡ – Read ¡and ¡Write ¡requests ¡are ¡sa9sfied ¡by ¡the ¡master ¡alone ¡ – If ¡a ¡master ¡fails, ¡other ¡replicas ¡run ¡the ¡elec9on ¡protocol ¡when ¡their ¡master ¡lease ¡expire ¡( ¡new ¡master ¡elected ¡in ¡few ¡seconds ¡) ¡ • Clients ¡find ¡the ¡master ¡by ¡sending ¡master ¡loca7on ¡requests ¡to ¡the ¡replicas ¡listed ¡in ¡the ¡DNS ¡ – Non ¡master ¡replicas ¡respond ¡by ¡returning ¡the ¡iden9ty ¡of ¡the ¡master ¡ – Once ¡a ¡client ¡has ¡located ¡the ¡master, ¡client ¡directs ¡all ¡requests ¡to ¡it ¡either ¡un9l ¡it ¡ceases ¡to ¡respond, ¡or ¡un9l ¡it ¡indicates ¡that ¡it ¡is ¡no ¡longer ¡the ¡master ¡ chubby.deathstar.sith ¡= ¡ DNS ¡ 1.1.1.1 ¡, ¡2.2.2.2 ¡, ¡3.3.3.3, ¡ Chubby ¡cell ¡ servers ¡ 4.4.4.4 ¡, ¡5.5.5.5 ¡ Master ¡= ¡5.5.5.5 ¡ 8.8.4.4 ¡ 8.8.8.8 ¡ 1.1.1.1 ¡ 2.2.2.2 ¡ 3.3.3.3 ¡ 4.4.4.4 ¡ 1 ¡-‑ ¡DNS ¡request ¡= ¡chubby.deathstar.sith ¡? ¡ ? ¡ n ¡ o 9 c a o ¡ l e r s t a M -‑ ¡ 2 ¡ Chubby ¡lib ¡ Client ¡ Master ¡ 3 ¡-‑ ¡ini9ates ¡Chubby ¡session ¡with ¡the ¡master ¡ 5.5.5.5 ¡ Applica7on ¡ 7 ¡
Design ¡ PAXOS ¡distributed ¡consensus ¡ Prepare ¡ = ¡please ¡votes ¡for ¡me ¡ and ¡promises ¡not ¡to ¡vote ¡for ¡ Chubby ¡cell ¡with ¡N ¡= ¡3 ¡replicas ¡ • someone ¡else ¡during ¡12 ¡seconds ¡ Replicas ¡use ¡a ¡distributed ¡consensus ¡protocol ¡to ¡ – Promise ¡ = ¡OK ¡i ¡vote ¡for ¡you ¡and ¡ ¡ elect ¡a ¡master ¡(PAXOS). ¡ Quorum ¡= ¡2 ¡for ¡N ¡= ¡3 ¡ promise ¡not ¡to ¡vote ¡for ¡someone ¡ The ¡master ¡must ¡obtain ¡votes ¡from ¡a ¡majority ¡ – else ¡during ¡12 ¡seconds ¡ of ¡replicas ¡that ¡promise ¡to ¡not ¡elect ¡a ¡different ¡ if ¡i ¡received ¡quorum ¡of ¡ Promise ¡ master ¡for ¡an ¡interval ¡of ¡a ¡few ¡seconds ¡ then ¡i ¡am ¡the ¡Master ¡an ¡i ¡can ¡send ¡ quorum ¡ (=master ¡lease) ¡ many ¡ Accept ¡during ¡my ¡lease ¡ (Proposer ¡vote ¡for ¡himself) ¡ The ¡master ¡lease ¡is ¡periodically ¡renewed ¡by ¡the ¡ – replicas ¡provided ¡the ¡master ¡con9nues ¡to ¡win ¡a ¡ Accept ¡ = ¡update ¡your ¡replicated ¡ majority ¡of ¡the ¡vote ¡ logs ¡with ¡this ¡Write ¡client ¡request ¡ During ¡its ¡master ¡lease, ¡the ¡master ¡maintains ¡ – Accepted ¡ = ¡i ¡have ¡write ¡in ¡my ¡log ¡ copies ¡of ¡a ¡simple ¡database ¡with ¡replicas ¡ your ¡Write ¡client ¡request ¡ (ordered ¡replicated ¡logs) ¡ if ¡a ¡replica ¡received ¡quorum ¡of ¡ Write ¡request ¡are ¡propagated ¡via ¡the ¡consensus ¡ – quorum ¡ quorum ¡ quorum ¡ Accepted ¡then ¡the ¡Write ¡is ¡commited ¡ protocol ¡to ¡all ¡replicas ¡(PAXOS) ¡ (replica ¡sends ¡an ¡Accepted ¡to ¡himself) ¡ Read ¡requests ¡are ¡sa9sfied ¡by ¡the ¡master ¡alone ¡ – Re-‑Prepare ¡ = ¡i ¡love ¡to ¡be ¡the ¡ If ¡a ¡master ¡fails, ¡other ¡replicas ¡run ¡the ¡elec9on ¡ – Master, ¡please ¡re-‑votes ¡for ¡me ¡ protocol ¡when ¡their ¡master ¡lease ¡expire ¡(new ¡ before ¡the ¡end ¡the ¡lease ¡so ¡i ¡can ¡ master ¡elected ¡in ¡few ¡seconds) ¡ extend ¡my ¡lease ¡ 8 ¡
Recommend
More recommend