Introduction to ZooKeeper

Learn why ZooKeeper was built and the needs it fulfills.

In distributed systems, many processes are running on different nodes that need to collaborate/coordinate with each other to do some task. Coordination can be of different types, for example, to check whether a process is alive or not and what it is responsible for, e.g., resource sharing, group membership, leader election, configurationA list of operational parameters for system processes., etc. Some systems use locking (for example, 2PL and Chubby) to enable resource sharing (a form of coordination) between processes. Other services, like Amazon SQS and Akamai configuration management also use a coordination service as a building block.

Note: Locking is one of the most famous and powerful coordination primitives to avoid race conditions in shared resources.

ZooKeeper is also a coordination system, but we want to know the reasons that led to the development of this new coordination system when we already have systems like 2PL, Chubby, etc. Let’s look into the limitations/problems of the already-developed coordination systems to realize the importance of ZooKeeper.

Problems with old coordination systems

  • Old coordination systems were specialized for different coordination needs:

    • ChubbyBurrows, Mike. “The Chubby lock service for loosely-coupled distributed systems.” In Proceedings of the 7th
...
Access this course and 1400+ top-rated courses and projects.