A methodology for creating fast wait-free data structures

Alex Kogan, Erez Petrank

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Lock-freedom is a progress guarantee that ensures overall program Progress. Wait-freedom is a stronger progress guarantee that en- sores the progress of each thread in the program. While many park- tidal 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 ver.- soon most of the time and revert to the wait-free version only when things go wrong. The generality and effectiveness of this method- logy 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 per- romance of a wait-free linked-list.

Original languageEnglish
Title of host publicationPPoPP'12 - Proceedings of the 2012 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Pages141-150
Number of pages10
DOIs
StatePublished - 2012
Event17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP'12 - New Orleans, LA, United States
Duration: 25 Feb 201229 Feb 2012

Publication series

NameProceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP

Conference

Conference17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP'12
Country/TerritoryUnited States
CityNew Orleans, LA
Period25/02/1229/02/12

Keywords

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

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint

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

Cite this