Crystalline: Fast and Memory Efficient Wait-Free Reclamation

08/05/2021
by   Ruslan Nikolaev, et al.
0

Historically, memory management based on lock-free reference counting was very inefficient, especially for read-dominated workloads. Thus, approaches such as epoch-based reclamation (EBR), hazard pointers (HP), or a combination thereof have received significant attention. EBR exhibits excellent performance but is blocking due to potentially unbounded memory usage. In contrast, HP are non-blocking and achieve good memory efficiency but are much slower. Moreover, HP are only lock-free in the general case. Recently, several new memory reclamation approaches such as WFE and Hyaline have been proposed. WFE achieves wait-freedom, but is less memory efficient and suffers from suboptimal performance in oversubscribed scenarios; Hyaline achieves higher performance and memory efficiency, but lacks wait-freedom. We present a new wait-free memory reclamation scheme, Crystalline, that simultaneously addresses the challenges of high performance, high memory efficiency, and wait-freedom. Crystalline guarantees complete wait-freedom even when threads are dynamically recycled, asynchronously reclaims memory in the sense that any thread can reclaim memory retired by any other thread, and ensures (an almost) balanced reclamation workload across all threads. The latter two properties result in Crystalline's high performance and high memory efficiency. Simultaneously ensuring all three properties require overcoming unique challenges which we discuss in the paper. Crystalline's implementation relies on specialized instructions which are widely available on commodity hardware such as x86-64 or ARM64. Our experimental evaluations show that Crystalline exhibits outstanding scalability and memory efficiency, and achieves superior throughput than typical reclamation schemes such as EBR as the number of threads grows.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/06/2022

wCQ: A Fast Wait-Free Queue with Bounded Memory Usage

The concurrency literature presents a number of approaches for building ...
research
07/29/2021

VBR: Version Based Reclamation

Safe lock-free memory reclamation is a difficult problem. Existing solut...
research
01/07/2020

Universal Wait-Free Memory Reclamation

In this paper, we present a universal memory reclamation scheme, Wait-Fr...
research
07/21/2021

Decidability of Liveness on the TSO Memory Model

An important property of concurrent objects is whether they support prog...
research
05/03/2019

On the Impact of Memory Allocation on High-Performance Query Processing

Somewhat surprisingly, the behavior of analytical query engines is cruci...
research
05/31/2018

Skyblocking: Learning Blocking Schemes on the Skyline

In this paper, for the first time, we introduce the concept of skyblocki...
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...

Please sign up or login with your details

Forgot password? Click here to reset