Automatic memory reclamation for lock-free data structures

Nachshon Cohen, Erez Petrank

Research output: Contribution to journalArticlepeer-review

Abstract

Lock-free data-structures are widely employed in practice, yet designing lock-free memory reclamation for them is notoriously difficult. In particular, all known lock-free reclamation schemes are ''manual'' in the sense that the developer has to specify when nodes have retired and may be reclaimed. Retiring nodes adequately is non-trivial and often requires the modification of the original lock-free algorithm. In this paper we present an automatic lock-free reclamation scheme for lock-free data-structures in the spirit of a mark-sweep garbage collection. The proposed algorithm works with any normalized lock-free algorithm and with no need for the programmer to retire nodes or make changes to the algorithm. Evaluation of the proposed scheme on a linked-list and a hash table shows that it performs similarly to the best manual (lock-free) memory reclamation scheme.

Original languageEnglish
Pages (from-to)260-279
Number of pages20
JournalACM SIGPLAN Notices
Volume50
Issue number10
DOIs
StatePublished - Oct 2015

Keywords

  • Concurrent Data Structures
  • Hazard Pointers
  • Lock-free
  • Memory Management
  • Non-blocking

All Science Journal Classification (ASJC) codes

  • General Computer Science

Fingerprint

Dive into the research topics of 'Automatic memory reclamation for lock-free data structures'. Together they form a unique fingerprint.

Cite this