k-Abortable Objects: Progress Under High Contention

In this paper, we define k-abortable objects, the first kind of abortable objects [2, 7] that guarantee some degree of progress even under high contention. The definition is simple and natural: intuitively, an operation on a k-abortable object can abort only if k operations from distinct processes succeed during the execution of the aborted operation. We first show that k-abortable objects can easily implement k -lock-free objects, i.e., objects where at least k processes make progress [5], but in contrast to k-lock-free objects, k-abortable objects always return control. We then give an efficient universal construction for wait-free k-abortable objects shared by n processes that takes only O(k) steps per operation. We also give a \(\varOmega (\log k)\)-steps lower bound for universal constructions of k-abortable objects shared by \(n \ge k\) processes. Since every wait-free k-abortable object can implement its k-lock-free counterpart, our universal construction also provides a universal construction for k-lock-free objects.

[1]  Sam Toueg,et al.  On deterministic abortable objects , 2013, PODC '13.

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

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

[4]  Erez Petrank,et al.  Wait-free queues with multiple enqueuers and dequeuers , 2011, PPoPP '11.

[5]  Marcos K. Aguilera,et al.  Abortable and query-abortable objects and their efficient implementation , 2007, PODC '07.

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

[7]  Rachid Guerraoui,et al.  Safety-Liveness Exclusion in Distributed Computing , 2015, PODC.

[8]  Prasad Jayanti,et al.  A time complexity lower bound for randomized implementations of some shared objects , 1998, PODC '98.

[9]  Panagiota Fatourou,et al.  Highly-Efficient Wait-Free Synchronization , 2013, Theory of Computing Systems.

[10]  Maged M. Michael,et al.  Simple, fast, and practical non-blocking and blocking concurrent queue algorithms , 1996, PODC '96.

[11]  Yehuda Afek,et al.  Wait-free made fast , 1995, STOC '95.

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

[13]  Faith Ellen,et al.  A general technique for non-blocking trees , 2014, PPoPP '14.

[14]  Rachid Guerraoui,et al.  Computing with Reads and Writes in the Absence of Step Contention , 2005, DISC.