Question 3
Paxos is a consensus protocol that has been used by many cloud computing platforms.
(a) Paxos uses version numbers to help the acceptors to decide whether they should respond to a received prepare request message. Use an example to explain why version numbers are important.
(b) According to the FLP impossibility theory, Paxos cannot guarantee termination. Describe a scenario in which Paxos does not terminate.
(c) Assume that a membership service that implements virtual synchrony is available and no process crash while the group membership changes. Explain how the implementation of the Paxos protocol can use the membership service to ensure the termination of the consensus protocol.