A methodology for creating fast wait-free data structures

Alex Kogan, Erez Petrank

Research output: Contribution to journalArticlepeer-review

Abstract

Lock-freedom is a progress guarantee that ensures overall program progress. Wait-freedom is a stronger progress guarantee that ensures the progress of each thread in the program. While many practical lock-free algorithms exist, wait-free algorithms are typically inefficient and hardly used in practice. In this paper, we propose a methodology called fast-path-slow-path for creating efficient wait-free algorithms. The idea is to execute the efficient lock-free version most of the time and revert to the wait-free version only when things go wrong. The generality and effectiveness of this methodology is demonstrated by two examples. In this paper, we apply this idea to a recent construction of a wait-free queue, bringing the wait-free implementation to perform in practice as efficient as the lock-free implementation. In another work, the fast-path-slow-path methodology has been used for (dramatically) improving the performance of a wait-free linked-list.

Original languageEnglish
Pages (from-to)141-150
Number of pages10
JournalACM SIGPLAN Notices
Volume47
Issue number8
DOIs
StatePublished - Aug 2012

Keywords

  • Concurrent data structures
  • Lock-free algorithms
  • Non-blocking synchronization
  • Wait-free queues

All Science Journal Classification (ASJC) codes

  • General Computer Science

Fingerprint

Dive into the research topics of 'A methodology for creating fast wait-free data structures'. Together they form a unique fingerprint.

Cite this