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.
In general, a way to mitigate this problem is to devise a mechanism that makes it harder to replace the coordinator, namely a leader stabilization mechanism. @cite_16 have proposed a failure detector based on an election procedure with built-in leader stability; the coordinator is only replaced if it isn't able to effectively perform its actions. However, approaches like this do not directly address the problem of coordinator replacements caused by message loss or variable communication delay. Minimization of these errors entails the improvement in the overall quality of service of the failure detector @cite_7 , which often requires tuning the detector's parameters to the characteristics of the local networking environment. In the absence of a self adjusting mechanism and in rapidly changing network conditions, the system has to bear the full cost of coordinator replacement more often than necessary.
@cite_16 @cite_7
2029761647 2166930011 2086069023 2015556975
Failure detectors are classical mechanisms which provide information about process failures and can help systems to cope with the high dynamics of self-organizing, unstructured and mobile wireless networks. Unreliable failure detectors of class ◊S are of special interest because they meet the weakest assumptions able to solve fundamental problems on the design of dependable systems. Unfortunately, a negative result states that no failure detector of that class can be implemented in a network of an unknown membership; but full membership knowledge as well as fully communication connectivity are no longer appropriate assumptions to the new scenario of dynamic networks. In this paper, we provide a discussion about the conditions and model able to implement failure detectors in dynamic networks and define a new class, namely ◊SM, which adapts the properties of the ◊S class to a dynamic network with an unknown membership. The election of an eventual leader in an asynchronous system prone to process crashes is an important problem of fault-tolerant distributed computing. This problem is known as the implementation of the failure detector Ω. Nearly all papers that propose algorithms implementing such an eventual leader service consider a static system. In contrast this paper considers a dynamic system, i.e. a system in which processes can join and leave. The paper has three main contributions. It first proposes a specification of Ω suited to dynamic systems. Then, it presents and proves correct two algorithms implementing this specification. Finally, the paper discusses the notion of an eventual leader suited to dynamic systems. It introduces an additional property related to system stability. The design of an algorithm satisfying this last property remains an open challenging problem. This paper presents a shared-memory self-stabilizing failure detector, asynchronous consensus and replicated state-machine algorithm suite, the components of which can be started in an arbitrary state and converge to act as a virtual state-machine. Self-stabilizing algorithms can cope with transient faults. Transient faults can alter the system state to an arbitrary state and hence, cause a temporary violation of the safety property of the consensus. Started in an arbitrary state, the long lived, memory bounded and self-stabilizing failure detector, asynchronous consensus, and replicated state-machine suite, presented in the paper, recovers to satisfy eventual safety and eventual liveness requirements. Several new techniques and paradigms are introduced. The bounded memory failure detector abstracts away synchronization assumptions using bounded heartbeat counters combined with a balance-unbalance mechanism. The practically infinite paradigm is introduced in the scope of self-stabilization, where an execution of, say, 2^6^4 sequential steps is regarded as (practically) infinite. Finally, we present the first self-stabilizing wait-free reset mechanism that ensures eventual safety and can be used to implement efficient self-stabilizing timestamps that are of independent interest. We consider agreement and leader election on asynchronous complete networks when the processors are reliable, but some of the channels are subject to failure. Fischer, Lynch, and Paterson have already shown that no deterministic algorithm can solve the agreement problem on asynchronous networks if any processor fails during the execution of the algorithm. Therefore, we consider only channel failures. The type of channel failure we consider in this paper is Byzantine failure, that is, channels fail by altering messages, sending false information, forging messages, losing messages at will, and so on. There are no restrictions on the behavior of a faulty channel. Therefore, a faulty channel may act as an adversary who forges messages on purpose to prevent the successful completion of the algorithm. Because we assume an asynchronous network, the channel delays are arbitrary. Thus, the faulty channels may not be detectable unless, for example, the faulty channels cause garbage to be sent. We present the first known agreement and leader election algorithm for asynchronous complete networks in which the processors are reliable but some channels may be Byzantine faulty. The algorithm can tolerate up to ⌊n-2 2⌋ faulty channels, where n is the number of processors in the network. We show that the bound on the number of faulty channels is optimal. When the processors terminate their corresponding algorithms, all the processors in the network will have the same correct vector, where the vector contains the private values of all the processors.