The consensus problem is one of the most fundamental and important problems for designing fault-tolerant distributed systems. In the consensus problem, each process proposes a value, and all non-faulty processes have to agree on a common value that is proposed by a process. Despite of many applications (e.g., atomic broadcast [2, 6], shared object [1, 7], weak atomic commitment [5]), it is known that the consensus problem has no deterministic solution in asynchronous systems subject to only a single crash fault [4]. Thus, to circumvent this impossibility, several approaches, such as partial synchrony [3] and unreliable failure detectors [2], have been proposed. As one of such approaches, the condition-based approach is recently introduced [9]. This approach introduces restriction (called condition) on inputs so that the generally-unsolvable problem can be solved for the restricted set of inputs. In the case of the consensus problem, a condition is defined as a subset of all possible input vectors whose entries correspond to the proposal of each process. The first result of the condition-based approach clarifies the condition for which the uniform consensus can be solved in asynchronous systems subject to crash faults [9]. This result proposed a class of conditions, called t-legal conditions, and proved that the t-legal conditions form the class of necessary and sufficient conditions to solve the consensus in asynchronous systems where at most t process can crash. In general, for smaller number of t, the t-legal conditions become weaker restrictions and can contain more input vectors. An example of such t-legal conditions is the condition Cmax t , proposed in [9]. The condition Cmax t is the set of input vectors where the maximum value in each vector appears at t entries or more in the vector. From the definition, the condition Cmax t is a subset of the condition Cmax t−1 . In this sense, the sizes of sufficient conditions are strongly related to the number of crash faults that the system suffers. That is, the consensus algorithm designed for tolerating a larger number of faults can solve the consensus problem only for a smaller set of input vectors. However, in the system with t crash faults at a maximum, it is not often that t processes actually crashes. In other words, the actual number of crash faults is relatively smaller than the maximum. This observation brings one question as follows: Can we construct the condition-based algorithm that solves the consensus problem for more relaxed conditions than t-legal one when the actual number of crash faults is smaller than t ? In this paper, we investigate this problem by applying the adaptive condition-based approach. In the adaptive condition-based approach, a restriction to input vectors is not represented by a single subset of inputs, but represented by a hierarchical sequence of conditions called a condition sequence. Adaptive condition-based algorithms are instantiated by a condition sequence, and guarantee some property according to the position of input vector in the hierarchy of the given condition sequence (i.e., the execution for the input vector with higher position achieves better property). The first result for the adaptive condition-based approach considers time complexity in the synchronous
Read full abstract