Reclaiming memory for lock-free data structures: there has to be a better way
Trevor Brown

TL;DR
This paper introduces a new, efficient distributed epoch-based memory reclamation scheme for lock-free data structures that significantly reduces overhead and improves modularity over existing methods like hazard pointers.
Contribution
We develop a distributed variant of epoch-based reclamation that solves unbounded unreclaimed objects and provides a flexible abstraction for easy scheme interchange.
Findings
Our scheme takes O(1) amortized steps per operation.
It outperforms hazard pointers by 75% on average.
Experiments show low overhead, around 10-28%.
Abstract
Memory reclamation for lock-based data structures is typically easy. However, it is a significant challenge for lock-free data structures. Automatic techniques such as garbage collection are inefficient or use locks, and non-automatic techniques either have high overhead, or do not work for many data structures. For example, subtle problems can arise when hazard pointers, one of the most common non-automatic techniques, are applied to many lock-free data structures. Epoch based reclamation (EBR), which is by far the most efficient non-automatic technique, allows the number of unreclaimed objects to grow without bound, because one crashed process can prevent all other processes from reclaiming memory. We develop a more efficient, distributed variant of EBR that solves this problem. It is based on signaling, which is provided by many operating systems, such as Linux and UNIX. Our new…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
