An optimistic approach to lock-free FIFO queues

Edya Ladan-Mozes*, Nir Shavit

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

37 Scopus citations

Abstract

First-in-first-out (FIFO) queues are among the most fundamental and highly studied concurrent data structures. The most effective and practical dynamic-memory concurrent queue implementation in the literature is the lock-free FIFO queue algorithm of Michael and Scott, included in the standard Java TM Concurrency Package. This work presents a new dynamic-memory concurrent lock-free FIFO queue algorithm that in a variety of circumstances performs better than the Michael and Scott queue. The key idea behind our new algorithm is a novel way of replacing the singly-linked list of Michael and Scott, whose pointers are inserted using a costly compare-and-swap (CAS) operation, by an "optimistic" doubly - linked list whose pointers are updated using a simple store, yet can be "fixed" if a bad ordering of events causes them to be inconsistent. We believe it is the first example of such an "optimistic" approach being applied to a real world data structure.

Original languageEnglish
Pages (from-to)323-341
Number of pages19
JournalDistributed Computing
Volume20
Issue number5
DOIs
StatePublished - Feb 2008

Keywords

  • CAS
  • Compare and swap
  • Concurrent data structures
  • FIFO queue
  • Lock-free
  • Non-blocking
  • Synchronization

Fingerprint

Dive into the research topics of 'An optimistic approach to lock-free FIFO queues'. Together they form a unique fingerprint.

Cite this