tailieunhanh - ZooKeeper: Wait-free coordination for Internet-scale systems

In this paper, we describe ZooKeeper, a service for coordinating processes of distributed applications. Since ZooKeeper is part of critical infrastructure, ZooKeeper aims to provide a simple and high performance kernel for building more complex coordination primitives at the client. It incorporates elements from group messaging, shared registers, and distributed lock services in a replicated, centralized service. The interface exposed by Zoo- Keeper has the wait-free aspects of shared registers with an event-driven mechanism similar to cache invalidations of distributed file systems to provide a simple, yet powerful coordination service. The ZooKeeper interface enables a high-performance service implementation. In addition to the wait-free property, ZooKeeper provides a per client guarantee of FIFO execution of requests. | ZooKeeper Wait-free coordination for Internet-scale systems Patrick Hunt and Mahadev Konar Yahoo Grid phunt mahadev @ Flavio P Junqueira and Benjamin Reed Yahoo Research fpj breed @ Abstract In this paper we describe ZooKeeper a service for coordinating processes of distributed applications. Since ZooKeeper is part of critical infrastructure ZooKeeper aims to provide a simple and high performance kernel for building more complex coordination primitives at the client. It incorporates elements from group messaging shared registers and distributed lock services in a replicated centralized service. The interface exposed by ZooKeeper has the wait-free aspects of shared registers with an event-driven mechanism similar to cache invalidations of distributed file systems to provide a simple yet powerful coordination service. The ZooKeeper interface enables a high-performance service implementation. In addition to the wait-free property ZooKeeper provides a per client guarantee of FIFO execution of requests and linearizability for all requests that change the ZooKeeper state. These design decisions enable the implementation of a high performance processing pipeline with read requests being satisfied by local servers. We show for the target workloads 2 1 to 100 1 read to write ratio that ZooKeeper can handle tens to hundreds of thousands of transactions per second. This performance allows ZooKeeper to be used extensively by client applications. 1 Introduction Large-scale distributed applications require different forms of coordination. Configuration is one of the most basic forms of coordination. In its simplest form configuration is just a list of operational parameters for the system processes whereas more sophisticated systems have dynamic configuration parameters. Group membership and leader election are also common in distributed systems often processes need to know which other processes are alive and what those processes are in charge of. Locks