POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Obstruction-Free Synchronization: Double-Ended Queues as an Example
ICDCS '03 Proceedings of the 23rd International Conference on Distributed Computing Systems
Adaptive and efficient abortable mutual exclusion
Proceedings of the twenty-second annual symposium on Principles of distributed computing
Computing with reads and writes in the absence of step contention
DISC'05 Proceedings of the 19th international conference on Distributed Computing
Remote storage with byzantine servers
Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing
Distributed computing and the multicore revolution
ACM SIGACT News
On obstruction-free transactions
Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures
Virtual infrastructure for collision-prone wireless networks
Proceedings of the twenty-seventh ACM symposium on Principles of distributed computing
Timeliness-based wait-freedom: a gracefully degrading progress condition
Proceedings of the twenty-seventh ACM symposium on Principles of distributed computing
Remote storage with byzantine servers
Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures
Abortable Fork-Linearizable Storage
OPODIS '09 Proceedings of the 13th International Conference on Principles of Distributed Systems
Proceedings of the 5th European conference on Computer systems
Signature-free broadcast-based intrusion tolerance: never decide a Byzantine value
OPODIS'10 Proceedings of the 14th international conference on Principles of distributed systems
Fork-consistent constructions from registers
Proceedings of the 30th annual ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Looking for efficient implementations of concurrent objects
PaCT'11 Proceedings of the 11th international conference on Parallel computing technologies
Fork-Consistent constructions from registers
OPODIS'11 Proceedings of the 15th international conference on Principles of Distributed Systems
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
On the cost of composing shared-memory algorithms
Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures
Surviving congestion in geo-distributed storage systems
USENIX ATC'12 Proceedings of the 2012 USENIX conference on Annual Technical Conference
On deterministic abortable objects
Proceedings of the 2013 ACM symposium on Principles of distributed computing
Hi-index | 0.00 |
We introduce abortable and query-abortable objects, intended for asynchronous shared-memory systems with low contention. These objects behave like ordinary objects when accessed sequentially, but may abort operations when accessed concurrently. An aborted operation may or may not take effect, i.e., cause a state transition, and it returns no indication of which possibility occurred. Since this uncertainty is problematic, a query-abortable object supports a QUERY operation that each process can use to determine its last non-QUERY operation on the object that caused a state transition, and the response associated with this state transition. Query-abortable objects can easily implement obstruction-free objects (introduced by Herlihy, Luchangco and Moir) and pausable objects (introduced by Attiya, Guerraoui and Kouznetsov). We present universal constructions for abortable and query-abortable objects that use only abortable registers -- registers that are strictly weaker than safe registers. Our universal constructions are novel and efficient in the number of registers used. Specifically, they are based on a simple time stamping mechanism for detecting concurrent executions, and in systems with n processes, they use only 2n abortable registers. It is worth noting that our results imply that any obstruction-free object and any pausable object can be implemented using only 2n abortable registers. Finally, we identify a potential problem with correctness properties based on step contention: with such properties, the composition of correct object implementations may result in an implementation that is not correct. In other words, implementations defined in terms of step contention are not always composable. To avoid this problem, we use interval contention to define the correct behaviour of abortable and query-abortable objects.