The Paxos algorithm requires a single correct coordinator process to operate. After a failure, the replacement of the coordinator may lead to a temporary unavailability of the application implemented atop Paxos. So far, this unavailability has been addressed by reducing the coordinator replacement rate through the use of stable coordinator selection algorithms. We have observed that the cost of recovery of the newly elected coordinator's state is at the core of this unavailability problem. In this paper we present a new technique to manage coordinator replacement that allows the recovery to occur concurrently with new consensus rounds. Experimental results show that our seamless approach effectively solves the temporary unavailability problem, its adoption entails uninterrupted execution of the application. Our solution removes the restriction that the occurrence of coordinator replacements is something to be avoided, allowing the decoupling of the application execution from the accuracy of the mechanism used to choose a coordinator. This result increases the performance of the application even in the presence of failures, it is of special importance to the autonomous operation of replicated applications that have to adapt to varying network conditions and partial failures.
One of the causes of communication instabilities that induce coordinator replacements in the absence of process failures is message loss due to buffer overflows. The designers of Ring Paxos @cite_2 have observed that many concurrent senders of multicast messages can increase considerably the rate of message loss. Ring Paxos attacks the problem caused by these message losses from a throughput perspective, by organizing acceptors in a ring. This minimizes concurrent senders, decreases message loss and increases the utilization of the links. However, in Ring Paxos coordinator replacement is still an expensive operation that can be triggered by workload peaks; it includes reforming the ring topology and broadcasting it to all active agents.
@cite_2
2167100431
Atomic broadcast is an important communication primitive often used to implement state-machine replication. Despite the large number of atomic broadcast algorithms proposed in the literature, few papers have discussed how to turn these algorithms into efficient executable protocols. Our main contribution, Ring Paxos, is a protocol derived from Paxos. Ring Paxos inherits the reliability of Paxos and can be implemented very efficiently. We report a detailed performance analysis of Ring Paxos and compare it to other atomic broadcast protocols.