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 language | English |
---|---|
Pages (from-to) | 260-279 |
Number of pages | 20 |
Journal | ACM SIGPLAN Notices |
Volume | 50 |
Issue number | 10 |
DOIs | |
State | Published - Oct 2015 |
Keywords
- Concurrent Data Structures
- Hazard Pointers
- Lock-free
- Memory Management
- Non-blocking
All Science Journal Classification (ASJC) codes
- General Computer Science