Skip to content
All papers

ZooKeeper: Wait-free Coordination for Internet-scale Systems

Patrick Hunt, Mahadev Konar, Flavio P. Junqueira, Benjamin Reed2010USENIX ATC 2010

Read it on usenix.org(opens in a new tab)

Why this one

Read this after Paxos Made Simple, because ZooKeeper is what happens when consensus stops being a theorem and becomes a service your production system can call. The central trick is not a magic lock server, it is a small ordered namespace with watches, ephemeral nodes, and versioned writes, from which clients build leader election, leases, barriers, and config rollout. People often get ZooKeeper wrong by treating it like a database or a mutex API. It is neither. It is a disciplined place to put the tiny bits of shared state that make large distributed systems agree on who is allowed to act. The paper is worth your evening because almost every serious system design eventually needs this layer, and bad coordination bugs look like rare outages until they become company folklore.

What to take away

  • ZooKeeper gives you ordered, versioned znodes, then lets clients assemble locks, leases, barriers, and leader election above them.
  • Ephemeral nodes tie coordination state to session liveness, which is the core move behind practical failure detection.
  • Watches avoid polling, but they are one-shot hints, so clients must reread state and tolerate missed intent.

Reads with