Characterizing and improving the general performance of Apache Zookeeper
University of New Brunswick
Coordination has become one of the most vital requirements in a scenario where a group of systems are communicating with each other over a network trying to accomplish goals. In some scenarios for instance, some high end distributed applications also require sophisticated coordination primitives such as leader election, rather than just agreeing over certain parameters. Implementing these types of primitives is rather difficult, due to their complexity, and their vulnerability to errors may lead to application failure. ZooKeeper, an open source distributed coordination service maintained by Apache takes care of all such issues. Its wait-free nature and strong ordering ensures synchronization and makes it ideal for developing high performance applications. ZooKeeper is inspired by other services such as Chubby, and at the protocol level from Paxos. The main goal of this report is to enhance the performance of ZooKeeper for ensuring its normal functioning. The performance of ZooKeeper has been increased, and none of the alterations have been done at the protocol level. The implementation involves modifications to the marshalling and demarshalling mechanisms followed by request processors and use of some queue implementations. The resulting performance impacts have been evaluated as well.