Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
A completeness theorem for a class of synchronization objects
PODC '93 Proceedings of the twelfth annual ACM symposium on Principles of distributed computing
Impossibility of distributed consensus with one faulty process
Journal of the ACM (JACM)
Distributed Algorithms
Obstruction-Free Synchronization: Double-Ended Queues as an Example
ICDCS '03 Proceedings of the 23rd International Conference on Distributed Computing Systems
Distributed Computing: Fundamentals, Simulations and Advanced Topics
Distributed Computing: Fundamentals, Simulations and Advanced Topics
Common2 extended to stacks and unbounded concurrency
Proceedings of the twenty-fifth annual ACM symposium on Principles of distributed computing
Synchronization Algorithms and Concurrent Programming
Synchronization Algorithms and Concurrent Programming
Test & Set, Adaptive Renaming and Set Agreement: a Guided Visit to Asynchronous Computability
SRDS '07 Proceedings of the 26th IEEE International Symposium on Reliable Distributed Systems
N-consensus is the second strongest object for N + 1 processes
OPODIS'07 Proceedings of the 11th international conference on Principles of distributed systems
Contention-sensitive data structures and algorithms
DISC'09 Proceedings of the 23rd international conference on Distributed computing
The computational structure of progress conditions
DISC'10 Proceedings of the 24th international conference on Distributed computing
Turning adversaries into friends: simplified, made constructive, and extended
OPODIS'10 Proceedings of the 14th international conference on Principles of distributed systems
A survey on some recent advances in shared memory models
SIROCCO'11 Proceedings of the 18th international conference on Structural information and communication complexity
On the implementation of concurrent objects
Dependable and Historic Computing
A closer look at fault tolerance
PODC '12 Proceedings of the 2012 ACM symposium on Principles of distributed computing
Hi-index | 0.00 |
Wait-freedom and obstruction-freedom have received a lot of attention in the literature. These are symmetric progress conditions in the sense that they consider all processes as being "equal". Wait-freedom has allowed to rank the synchronization power of objects in presence of process failures, while (the weaker) obstruction-freedom allows for simpler and more efficient object implementations. This paper introduces the notion of asymmetric progress conditions. Given an object O in a shared memory system of n processes, we say that O satisfies (y,x)-liveness if O can be accessed by a subset of y n processes only, and it guarantees wait-freedom for x processes and obstruction-freedom for the remaining y-x processes. Notice that, (n,n)-liveness is wait-freedom while (n,0)-liveness is obstruction-freedom. The main contributions are: (1) an impossibility result showing that there is no (n,1)-live consensus object even if one can use underlying (n-1,n-1)-live consensus objects and registers, (2) an (n,x)-liveness hierarchy for 0 x n, and (3) an impossibility result showing that there is no consensus object for n processes that is obstruction-free with respect to all processes and fault-free with respect to a single process even if one can use underlying (n-1,n-1)-live consensus objects and registers (a process is fault-free if it always terminates when all the processes participate and there are no faults). (4) An implementation based on (x,x)-live objects that constructs a consensus object for any number of n x processes which satisfies an asymmetric group-based progress condition.