Using elimination to implement scalable and lock-free FIFO queues

Mark Moir, Daniel Nussbaum, Ori Shalev, Nir Shavit

Research output: Contribution to conferencePaperpeer-review

Abstract

This paper shows for the first time that elimination, a scaling technique formerly applied only to counters and LIFO structures, can be applied to FIFO data structures, specifically, to linearizable FIFO queues. We show how to transform existing nonscalable FIFO queue implementations into scalable implementations using the elimination technique, while preserving lock-freedom and linearizablity. We apply our transformation to the FIFO queue algorithm of Michael and Scott, which is included in the Java™ Concurrency Package. Empirical evaluation on a state-of-the-art CMT multiprocessor chip shows that by using elimination as a backoff technique for the Michael and Scott queue algorithm, we can achieve comparable performance at low loads, and improved scalability as load increases.

Original languageEnglish
Pages253-262
Number of pages10
DOIs
StatePublished - 2005
Externally publishedYes
EventSeventeenth Annual ACM Symposium on Parallelism in Algorithms and Architectures - Las Vegas, NV, United States
Duration: 18 Jul 200520 Jul 2005

Conference

ConferenceSeventeenth Annual ACM Symposium on Parallelism in Algorithms and Architectures
Country/TerritoryUnited States
CityLas Vegas, NV
Period18/07/0520/07/05

Keywords

  • Elimination
  • FIFO queues
  • Linearizability
  • Lock-free
  • Multiprocessors
  • Nonblocking synchronization
  • Scalability

Fingerprint

Dive into the research topics of 'Using elimination to implement scalable and lock-free FIFO queues'. Together they form a unique fingerprint.

Cite this