NBR: Neutralization Based Reclamation

12/29/2020
by   Ajay Singh, et al.
0

Safe memory reclamation (SMR) algorithms suffer from a trade-off between bounding unreclaimed memory and the speed of reclamation. Hazard pointer (HP) based algorithms bound unreclaimed memory at all times, but tend to be slower than other approaches. Epoch based reclamation (EBR) algorithms are faster, but do not bound memory reclamation. Other algorithms follow hybrid approaches, requiring special compiler or hardware support, changes to record layouts, and/or extensive code changes. Not all SMR algorithms can be used to reclaim memory for all data structures. We propose a new neutralization based reclamation (NBR) algorithm that is faster than the best known EBR algorithms and achieves bounded unreclaimed memory. It is non-blocking when used with a non-blocking operating system (OS) kernel, and only requires atomic read, write and CAS. NBR is straightforward to use with many different data structures, and in most cases, require similar reasoning and programmer effort to two-phased locking. NBR is implemented using OS signals and a lightweight handshaking mechanism between participating threads to determine when it is safe to reclaim a record. Experiments on a lock-based binary search tree and a lazy linked list show that NBR significantly outperforms many state of the art reclamation algorithms. In the tree NBR is faster than next best algorithm, DEBRA by upto 38 17 respectively.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/08/2020

Paving the way for Distributed Non-Blocking Algorithms and Data Structures in the Partitioned Global Address Space

The partitioned global address space has bridged the gap between shared ...
research
01/03/2022

Technical Report: Bundling Linked Data Structures for Linearizable Range Queries

We present bundled references, a new building block to provide lineariza...
research
01/03/2022

Lock-Free Locks Revisited

This paper presents a new and practical approach to lock-free locks base...
research
12/18/2017

Pragmatic Primitives for Non-blocking Data Structures

We define a new set of primitive operations that greatly simplify the im...
research
11/28/2018

Safe Deferred Memory Reclamation with Types

Memory management in lock-free data structures remains a major challenge...
research
12/18/2017

A General Technique for Non-blocking Trees

We describe a general technique for obtaining provably correct, non-bloc...
research
05/20/2019

Hyaline: Fast and Transparent Lock-Free Memory Reclamation

We present a new lock-free safe memory reclamation algorithm, Hyaline, w...

Please sign up or login with your details

Forgot password? Click here to reset