A quorum is the minimum number of members that must be present at any meeting to consider the proceedings of the meeting valid.
Quorum is a widely used concept in distributed systems. For many of the standard algorithms, the idea of quorum is used to reach a decision.
Let’s understand the concept of quorum with the help of a diagram.
In Fig A, we have two nodes, each with green and red colors. In this case, there can be no consensus, as a quorum of nodes has not agreed. On the other hand, in Fig B, we have three green nodes, and hence we have a quorum. Whatever these three nodes agree upon is what the algorithm will do.
In distributed systems, we mostly have an odd number of nodes, so the chances of us running into a situation like the one depicted in Fig A are slim. There will always be more than half the number of given nodes deciding on something, provided that there are two options to choose from.
Network partition is an inherent part of any distributed system, and a system that claims to be distributed also needs to be partition tolerant. That is, in the event of a network partition, the system should continue to work.
Quorum usually helps with this continuity in the event of a network partition. In the absence of a quorum, the different partitions would each assume that the view of the system is as they see it, which is limited by the communication. Each of the partitions would then continue to work and move forward in different directions. This problem is known as split brain.
With the concept of quorum, the system would only work if more than half the nodes can communicate with each other through some network path.
Quorum is used in almost all consensus-based algorithms in distributed systems. Raft
is one of the famous consensus algorithms that uses quorum as the core of their algorithm logic.