Systems · paper 09

ZooKeeper: Wait-free Coordination for Internet-scale Systems

Hunt, Konar, Junqueira, Reed · 2010 · USENIX ATC · 45 min · Moderate
Summary

ZooKeeper offers a small hierarchical namespace with watches, ordered writes, and linearisable updates, and shows how clients compose locks, barriers, and group membership from those primitives. Reads are served locally by any replica for throughput; writes go through a leader.

Key ideas
  • Provide primitives and let clients build the coordination they need
  • Ordered, asynchronous operations give both speed and correctness
  • Watches turn polling into notification
Why read it now

Kafka, HBase, and many in-house systems used it for membership and leader election, and its recipes are still how coordination problems are decomposed.

Question to keep in mind

What can go wrong if a client treats a ZooKeeper read as the latest state, and how do the recipes guard against it?

124 online