Hyaline: Fast and Transparent Lock-Free Memory Reclamation

05/20/2019
by   Ruslan Nikolaev, et al.
0

We present a new lock-free safe memory reclamation algorithm, Hyaline, which is fast, scalable, and transparent to the underlying data structures. Due to very low contention, Hyaline is generally faster than existing approaches, including epoch-based reclamation. Moreover, Hyaline easily handles virtually unbounded number of threads (or any concurrent entities) that can be created and deleted dynamically, while retaining O(1) reclamation cost. Hyaline also does not depend on any OS abstractions or compiler support. Hyaline's full transparency and simple API enable easy integration into unmanaged C/C++ code, while not causing any undue burden on programmers, potentially making the entire process fully automatic through special language constructs. We also extend Hyaline to avoid situations where stalled threads prevent others from reclaiming newly allocated objects, a common problem with epoch-based reclamation. We have implemented and tested Hyaline on the x86(-64), ARM32/64, PPC, and MIPS architectures. The general approach typically requires LL/SC or double-width CAS, while a specialized version also works with single-width CAS. Our evaluation reveals that Hyaline's throughput is very high -- it steadily outperformed epoch-based reclamation by 10 gains in oversubscribed scenarios.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/13/2019

A Scalable, Portable, and Memory-Efficient Lock-Free FIFO Queue

We present a new lock-free multiple-producer and multiple-consumer (MPMC...
research
01/07/2020

Universal Wait-Free Memory Reclamation

In this paper, we present a universal memory reclamation scheme, Wait-Fr...
research
12/04/2017

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

Memory reclamation for lock-based data structures is typically easy. How...
research
11/05/2019

A Wait-Free Universal Construct for Large Objects

Concurrency has been a subject of study for more than 50 years. Still, m...
research
11/21/2019

LL/SC and Atomic Copy: Constant Time, Space Efficient Implementations using only pointer-width CAS

The Load-Link/Store-Conditional (LL/SC) primitive is considered the most...
research
12/29/2020

NBR: Neutralization Based Reclamation

Safe memory reclamation (SMR) algorithms suffer from a trade-off between...
research
07/29/2021

VBR: Version Based Reclamation

Safe lock-free memory reclamation is a difficult problem. Existing solut...

Please sign up or login with your details

Forgot password? Click here to reset