16
ZooKeeper: Wait-free coordination for Internet-scale systems P. Hunt, M Konar, F. Junqueira, B. Reed Presented by David Stein for ECE598YL SP‘12

P. Hunt, M Konar, F. Junqueira, B. Reed Presented by David Stein for ECE598YL SP12

Embed Size (px)

Citation preview

  • Slide 1

Slide 2 P. Hunt, M Konar, F. Junqueira, B. Reed Presented by David Stein for ECE598YL SP12 Slide 3 Versatile distributed coordination system Simple primitives Application developers use API to implement higher-level coordination primitives Wait-free non-blocking design Strong ordering guarantees Designed for read-intensive workload Slide 4 Hierarchical, filesystem-like design znodes Regular (persistent) Ephemeral (session) Supports sequential naming of nodes Nodes contain values Sessions Slide 5 Slide 6 create(path, data, flags) delete(path, version) exists(path, watch) getData(path, watch) setData(path, data, version) getChildren(path, watch) sync(path) Slide 7 Linearizable writes FIFO client order Liveness Durability Slide 8 Data is replicated on every server Reads are serviced immediately Write requests are forwarded to the leader Transforms requests from client into idempotent transaction records Zab is used to push idempotent transaction records to the replicated database (stored with the followers) Strong order guarantees (uses TCP) Slide 9 Slide 10 Local replicas will never diverge But any point in time, some local servers may have applied more transactions than others Failure recovery Periodic snapshots are kept at each replica Idempotent transaction records can be received in any order to rebuild the state Slide 11 Configuration Management Rendezvous Group Membership Locks Slide 12 Yahoo! Fetching Service Part of Yahoo! crawler for search engine Uses ZooKeeper to manage configuration metadata and leader election. Katta Yahoo! Message Broker Publish-subscribe system Slide 13 Slide 14 Slide 15 Slide 16 Chubby Boxwood ISIS Paxos Sinfonia Dynamo Slide 17