I've been reading a lot about Zookeeper and one thing that I didn't understand yet is the naming convention. I couldn't find anything about it in the documentation and all stackoverflow questions and other resources uses the definition of quorum in different ways. So my question is, what exactly a quorum is?
So, what is exactly a quorum? I saw many people using the same name in two different concepts.
It seems like people were using it indiscriminately, but both points are mutually exclusive. One thing is the number of servers to build a healthy ensemble, resilient and reliable to get quorum even if some node fails and the other states that a quorum is equivalent to that number. Also, the definition of quorum is:
The minimum number of members of an assembly or society that must be present at any of its meetings to make the proceedings of that meeting valid.
Which implies that we could have more members not available at the time we need to make a decision (in this case, servers that went down). More than that, I found an interesting note in the Zookeeper internals documentation:
Atomic broadcast and leader election use the notion of quorum to guarantee a consistent view of the system. By default, ZooKeeper uses majority quorums, which means that every voting that happens in one of these protocols requires a majority to vote on. One example is acknowledging a leader proposal: the leader can only commit once it receives an acknowledgement from a quorum of servers.
Quorums could also be configured in a hierarchical way or event configured weights on different servers.
Conclusion:
(T+1)/2
where T
stands for the total number of servers.