On deterministic abortable objects

  • Authors:
  • Vassos Hadzilacos;Sam Toueg

  • Affiliations:
  • University of Toronto, Toronto, Ontario, Canada;University of Toronto, Toronto, Ontario, Canada

  • Venue:
  • Proceedings of the 2013 ACM symposium on Principles of distributed computing
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

We define deterministic abortable (DA) objects, which guarantee that operations complete normally if executed solo, but may abort if executed concurrently with other operations. An operation that aborts has no effect on the object. This simple and attractive behavior is reminiscent of transactional memory, database transactions, and abortable mutual exclusion --- techniques in which a process can, under contention, ``bail out'' of the computation without leaving a trace. It is well-known that ordinary objects can be placed in a consensus hierarchy, based on their ability to implement n-Consensus (an object that allows up to n processes to agree on a value): an object is at level n if, together with registers, it can implement n-Consensus} but not (n+1)-Consensus. We show that DA objects can be placed in an analogous hierarchy, called the DAC hierarchy, based on their ability to implement n-DAC, the DA counterpart of n-Consensus. We explore the similarities and differences between these two hierarchies. It was previously known that 2-DAC is just as powerful as 2-Consensus, so the two hierarchies coincide at level 2. We show, however, that they diverge at higher levels. First, we show that ∞-DAC} (which is at level ∞ of the DAC hierarchy) can not implement even 3-Consensus (which is at level 3 of the consensus hierarchy). Then we show that, for each n, n-Consensus cannot implement (n+1)-DAC. Finally, we show that, in general, there is no simple correspondence between the level of an object in one hierarchy and its counterpart in the other: We exhibit an ordinary object at level ∞ of the consensus hierarchy, whose DA counterpart is at level 1 in the DAC hierarchy.