Nontrivial and universal helping for wait-free queues and stacks

Hagit Attiya, Armando Castañeda, Danny Hendler

Research output: Contribution to journalArticlepeer-review

3 Scopus citations

Abstract

This paper studies two approaches to formalize helping in wait-free implementations of shared objects. The first approach is based on operation valency, and it allows us to make an important distinction between trivial and nontrivial helping. We show that any wait-free implementation of a queue from Test&Set requires nontrivial helping. We also define a weaker type of nontrivial helping and show that any wait-free queue implementation from a set of arbitrary base objects requires it. In contrast, there is a wait-free implementation of a stack from Test&Set with only trivial helping. These results shed light on the well-known open question of whether there exists a wait-free implementation of a queue in Common2, and indicate why it seems to be more difficult than implementing a stack. The other approach formalizes the helping mechanism employed by Herlihy's universal wait-free construction and is based on having an operation by one process restrict the possible linearizations of operations by other processes. We show that queue and stack implementations possessing such universal helping can be used to solve consensus. This result can be used to show that a strongly linearizable (Golab et al., 2011) implementation of a queue or a stack for n processes must use objects that allow to solve consensus among n or more processes.

Original languageEnglish
Pages (from-to)1-14
Number of pages14
JournalJournal of Parallel and Distributed Computing
Volume121
DOIs
StatePublished - 1 Nov 2018

Keywords

  • Common2
  • Consensus number
  • Helping
  • Non-blocking
  • Queues
  • Shared objects
  • Stacks
  • Strong linearizability
  • Wait-freedom

Fingerprint

Dive into the research topics of 'Nontrivial and universal helping for wait-free queues and stacks'. Together they form a unique fingerprint.

Cite this