On the minimal synchronism needed for distributed consensus
Journal of the ACM (JACM)
Impossibility of distributed consensus with one faulty process
Journal of the ACM (JACM)
ACM Transactions on Computer Systems (TOCS)
Information Processing Letters
Active disk paxos with infinitely many processes
Proceedings of the twenty-first annual symposium on Principles of distributed computing
Using Failure Detectors to Solve Consensus in Asynchronous Sharde-Memory Systems (Extended Abstract)
WDAG '94 Proceedings of the 8th International Workshop on Distributed Algorithms
How to Build a Highly Available System Using Consensus
WDAG '96 Proceedings of the 10th International Workshop on Distributed Algorithms
Revisiting the Paxos Algorithm
WDAG '97 Proceedings of the 11th International Workshop on Distributed Algorithms
DISC '00 Proceedings of the 14th International Conference on Distributed Computing
DISC '01 Proceedings of the 15th International Conference on Distributed Computing
The Timed Asynchronous Distributed System Model
FTCS '98 Proceedings of the The Twenty-Eighth Annual International Symposium on Fault-Tolerant Computing
Optimal Implementation of the Weakest Failure Detector for Solving Consensus
SRDS '00 Proceedings of the 19th IEEE Symposium on Reliable Distributed Systems
Light-weight leases for storage-centric coordination
International Journal of Parallel Programming
Fault-tolerant wait-free shared objects
SFCS '92 Proceedings of the 33rd Annual Symposium on Foundations of Computer Science
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Hi-index | 0.00 |
In this paper, we give an algorithm for fault-tolerant proactive leader election in asynchronous shared memory systems, and later its formal verification. Roughly speaking, a leader election algorithm is proactive if it can tolerate failure of nodes even after a leader is elected, and (stable) leader election happens periodically. This is needed in systems where a leader is required after every failure to ensure the availability of the system and there might be no explicit events such as messages in the (shared memory) system. Previous algorithms like DiskPaxos[1] are not proactive. In our model, individual nodes can fail and reincarnate at any point in time. Each node has a counter which is incremented every period, which is same across all the nodes (modulo a maximum drift). Different nodes can be in different epochs at the same time. Our algorithm ensures that per epoch there can be at most one leader. So if the counter values of some set of nodes match, then there can be at most one leader among them. If the nodes satisfy certain timeliness constraints, then the leader for the epoch with highest counter also becomes the leader for the next epoch(stable property). Our algorithm uses shared memory proportional to the number of processes, the best possible. We also show how our protocol can be used in clustered shared disk systems to select a primary network partition. We have used the state machine approach to represent our protocol in Isabelle HOL[3] logic system and have proved the safety property of the protocol.