Skip to Main Content
This work addresses the leader election problem in distributed systems where processes can crash and recover. More precisely, it focuses on implementing the Omega failure detector class, which provides a leader election functionality, in the crash-recovery failure model. The concepts of quiescence and near-quiescence for an algorithm implementing Omega are defined. Depending on the use or not of stable storage, the property satisfied by unstable processes, i.e., those that crash and recover infinitely often, varies. Two algorithms implementing Omega are presented. In the first algorithm, which is quiescent and uses stable storage, eventually and permanently unstable processes agree on the leader with correct processes. In the second algorithm, which is near-quiescent and does not use stable storage, unstable processes agree on the leader with correct processes after receiving a first message from a correct process. An adaptation of this second algorithm that avoids the disagreement of unstable processes by providing instability awareness is also presented.