Abstract
The k-set agreement problem is a generalization of the consensus problem. Namely, assuming that each process proposes a value, every non-faulty process must decide one of the proposed values, under the constraint that at most k different values are decided. This is a hard problem in the sense that it cannot be solved in a pure read/write asynchronous system, in which k or more processes may crash. One way to sidestep this impossibility result consists in weakening the termination property, requiring only that a process decides if it executes alone during a long enough period of time. This is the well-known obstruction-freedom progress condition. Consider a system of nanonymous asynchronous processes that communicate through atomic read/write registers, and such that any number of them may crash. This paper addresses and solves the challenging open problem of designing an obstruction-free k-set agreement algorithm with only (n- k+ 1) atomic registers. From a shared memory cost point of view, our algorithm is the best algorithm known to date, thereby establishing a new upper bound on the number of registers needed to solve this problem. For the consensus case (k= 1) , the proposed algorithm is up to an additive factor of 1 close to the best known lower bound. Further, the paper extends this algorithm to obtain an x-obstruction-free solution to the k-set agreement problem that employs (n- k+ x) atomic registers (with 1 ≤ x≤ k< n), as well as a space-optimal solution for the repeated version of k-set agreement. Using this last extension, we prove that n registers are enough for every colorless task that is obstruction-free solvable with identifiers and any number of registers.
| Original language | English |
|---|---|
| Pages (from-to) | 99-117 |
| Number of pages | 19 |
| Journal | Distributed Computing |
| Volume | 31 |
| Issue number | 2 |
| DOIs | |
| Publication status | Published - 1 Apr 2018 |
| Externally published | Yes |
Keywords
- Anonymous processes
- Asynchronous system
- Atomic read/write register
- Bounded number of registers
- Colorless task
- Consensus
- Distributed algorithm
- Distributed computability
- Fault-tolerance
- Obstruction-freedom
- Process crash
- Repeated k-set agreement
- Upper bound
- k-set agreement