optimal implementation of the weakest failure detector for solving consensus (brief announcement)
Unreliable failure detectors were introduced by Chandra and Toueg [2] as a mechanism that provides (possibly incorrect) information about process failures. They showed how unreliable failure detectors can be used to solve the Consensus problem in asynchronous systems. They also showed in [1] that one of the classes of failure detectors they defined, namely Eventually Strong (&diam; S ), is the weakest class allowing to solve Consensus 1 . This brief announcement presents a new algorithm implementing &diam; S . Due to space limitation, the reader is referred to [4] for an in-depth presentation of the algorithm (system model, correctness proof, and performance analysis). Here, we present the general idea of the algorithm and compare it with other algorithms implementing unreliable failure detectors. The algorithm works as follows. We have n processes, p 1 , , p n . Initially, process p 1 starts sending messages periodically to the rest of processes. The rest of processes initially trust p 1 , and wait for its messages. If a process does not receive a message within some timeout period from its trusted process, then it suspects its trusted process and takes the next process as its new trusted process. If a process trusts itself, then it starts sending messages periodically to its successors. Otherwise, it just waits for periodical messages from its trusted process. If, at some point, a process receives a message from a process p i such that p i precedes its trusted process, then it will trust p i again, increasing the value of its timeout period with respect to p i . With this algorithm, eventually all the correct processes will permanently trust the same correct process. This provides the eventual weak accuracy property required by &diam; S . By simply suspecting the rest of processes, we obtain the strong completeness property required by &diam; S . Our algorithm compares favorably with the algorithms proposed in [2] and [3] in terms of the number and size of the messages periodically sent and the total amount of information periodically exchanged. Since algorithms implementing failure detectors need not necessarily be periodic, we propose a new and (we believe) more adequate performance measure, which we call eventual monitoring degree . Informally, this measure counts the number of pairs of correct processes that will infinitely often communicate. We show that the proposed algorithm is optimal with respect to this measure. Table 1 summarizes the comparison, where C denotes the number of correct processes and LFA denotes the proposed algorithm.
optimality implementation failure detector failure consensus correctness informal process asynchronicity systems class present algorithm space system modeling performance analysis general message trust point value accuracy size performance measurement measurement monitor communication comparisons