The x-Wait-Freedom Progress Condition

The liveness of concurrent objects despite asynchrony and failures is a fundamental problem. To that end several progress conditions have been proposed. Wait-freedom is the strongest of these conditions: it states that any object operation must terminate if the invoking process does not crash. Obstructionfreedom is a weaker progress condition as it requires progress only when a process executes in isolation for a long enough period. This paper explores progress conditions in n-process asynchronous read/write systems enriched with base objects with consensus number x, 1 < x ≤ n (i.e., objects that wait-free solve consensus in a set of x processes). It is easy to solve consensus in such a system if progress is required only when one of the x processes allowed to access the underlying consensus object invokes this object and does not crash. This paper proposes and investigates a stronger progress condition that we call x-wait-freedom (n-wait-freedom is wait-freedom). While it does not need more assumptions than the previous one in order to ensure progress, that condition identifies additional scenarios in which progress is required despite the fact that none of the x processes allowed to access the underlying consensus object participates. The paper then presents and proves correct a consensus algorithm that satisfies this progress condition.

[1]  Michel Raynal,et al.  Test & Set, Adaptive Renaming and Set Agreement: a Guided Visit to Asynchronous Computability , 2007, 2007 26th IEEE International Symposium on Reliable Distributed Systems (SRDS 2007).

[2]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[3]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[4]  Nancy A. Lynch,et al.  Impossibility of distributed consensus with one faulty process , 1983, PODS '83.

[5]  Gadi Taubenfeld Contention-Sensitive Data Structures and Algorithms , 2009, DISC.

[6]  Hagit Attiya,et al.  Distributed Computing: Fundamentals, Simulations and Advanced Topics , 1998 .

[7]  Eli Gafni,et al.  Generalized FLP impossibility result for t-resilient asynchronous computations , 1993, STOC.

[8]  David Powell,et al.  Failure mode assumptions and assumption coverage , 1992, [1992] Digest of Papers. FTCS-22: The Twenty-Second International Symposium on Fault-Tolerant Computing.

[9]  Gadi Taubenfeld Synchronization Algorithms and Concurrent Programming , 2006 .

[10]  Nir Shavit,et al.  Atomic snapshots of shared memory , 1990, JACM.

[11]  Leslie Lamport,et al.  On interprocess communication , 1986, Distributed Computing.

[12]  Maurice Herlihy,et al.  Obstruction-free synchronization: double-ended queues as an example , 2003, 23rd International Conference on Distributed Computing Systems, 2003. Proceedings..

[13]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[14]  Gadi Taubenfeld,et al.  On the Computational Power of Shared Objects , 2009, OPODIS.

[15]  Marcin Paprzycki,et al.  Distributed Computing: Fundamentals, Simulations and Advanced Topics , 2001, Scalable Comput. Pract. Exp..

[16]  Rachid Guerraoui,et al.  The weakest failure detectors to boost obstruction-freedom , 2006, Distributed Computing.