A generalised solution to distributed consensus

A generalised solution to distributed consensus

Given quorum configurations and register values for register sets, we can see if any quorum is satisfied and a decision reached. Possible values for a quorum are:

As the client receives information from servers, it updates the decision table according to the following rules:

Clients use the decision table to implement the four rules for correctness as follows:

You’ll be pleased to know however that proofs are included, and you’ll find them in Appendix A. I’m out of space to do that proper justice, but here’s a sneak-peek at the core Paxos algorithm:

If you differentiate between the quorums used for each register set and which phase of Paxos the quorum is used for, you can arrive at Flexible Paxos.

Source: blog.acolyer.org