The Apache Zookeeper is a coordination service for distributed applications, like a Google's Chubby. Many projects uses zookeeper, and we (Apache Hama) also uses zookeeper for barrier synchronization of Bulk Synchronous Parallel computing framework.
Today, I surveyed more about paxos and dynamic quorum of Zookeeper project, to renaming the class name of org.apache.hama.zookeeper.QuorumPeer. Because of documentation is not enough, I didn't know what is the meaning of quorum and the term of "quorum" was somewhat odd to me.
But, the "org.apache.hama.zookeeper.QuorumPeer" is proper name!! xD
So, what is the Quorum and why do we need a Quorum?
According to Wikipedia, Quorum is the minimum number of members of a deliberative body necessary to conduct the business of that group. Ordinarily, this is a majority of the people expected to be there, although many bodies may have a lower or higher quorum.
As you know, a Fault-Tolerant mechanism is one of the important functions of distributed system. Quorum algorithm is used to prevent the split-brain condition. When split-brain condition occurrs, according to the Quorum algorithm, zookeeper determines the "Primary Patrition" and "Secondary Partition". Then, the servers in primary group are receives and processes user's request, and the servers in secondary group are becomes read-only mode. When recovered from split-brain condition? They will be merged to one partition again. Interanally, zookeeper uses atomic broadcast protocol instead of Paxos.