A scalable lock-free stack algorithm

Danny Hendler, Nir Shavit, Lena Yerushalmi

Research output: Contribution to conferencePaperpeer-review

159 Scopus citations

Abstract

The literature describes two high performance concurrent stack algorithms based on combining funnels and elimination trees. Unfortunately, the funnels are linearizable but blocking, and the elimination trees are non-blocking but not linearizable. Neither is used in practice since they perform well only at exceptionally high loads. The literature also describes a simple lock-free linearizable stack algorithm that works at low loads but does not scale as the load increases. The question of designing a stack algorithm that is non-blocking, linearizable, and scales well throughout the concurrency range, has thus remained open. This paper presents such a concurrent stack algorithm. It is based on the following simple observation: that a single elimination array used as a backoff scheme for a simple lock-free stack is lock-free, linearizable, and scalable, As our empirical results show, the resulting elimination-backoff stack performs as well as the simple stack at low loads, and increasingly outperforms all other methods (lock-based and non-blocking) as concurrency increases. We believe its simplicity and scalability make it a viable practical alternative to existing constructions for implementing concurrent stacks.

Original languageEnglish
Pages206-215
Number of pages10
DOIs
StatePublished - 1 Jan 2004
Externally publishedYes
EventSPAA 2004 - Sixteenth Annual ACM Symposium on Parallelism in Algorithms and Architectures - Barcelona, Spain
Duration: 27 Jun 200430 Jun 2004

Conference

ConferenceSPAA 2004 - Sixteenth Annual ACM Symposium on Parallelism in Algorithms and Architectures
Country/TerritorySpain
CityBarcelona
Period27/06/0430/06/04

Keywords

  • Algorithms
  • Lock-freedom
  • Scalability
  • Theory

ASJC Scopus subject areas

  • Software
  • Safety, Risk, Reliability and Quality

Fingerprint

Dive into the research topics of 'A scalable lock-free stack algorithm'. Together they form a unique fingerprint.

Cite this