Memory-Optimality for Non-Blocking Containers

04/30/2021
by   Vitaly Aksenov, et al.
0

A bounded container maintains a collection of elements that can be inserted and extracted as long as the number of stored elements does not exceed the predefined capacity. We consider the concurrent implementations of a bounded container more or less memory-friendly depending on how much memory they use in addition to storing the elements. This way, memory-optimal implementation employs the minimal possible memory overhead and ensures that data and metadata are stored most compactly, reducing cache misses and unnecessary memory reclamation. In this paper, we show that non-blocking implementations of a large class of element-independent bounded containers, including queues, stacks, and pools, must incur linear in the number of concurrent processes memory overhead. In the special cases when the ABA problem is excluded, e.g., by assuming that the hardware supports LL/SC instructions or by storing distinct elements, we show that the lower bound can be circumvented, by presenting lock-free bounded queues with constant memory overhead. For the general case, we present a CAS-based bounded queue implementation that asymptotically matches our lower bound. We believe that these results open a new research avenue devoted to the memory-optimality phenomenon.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/18/2021

Durable Queues: The Second Amendment

We consider durable data structures for non-volatile main memory, such a...
research
10/07/2019

Improved Bounds for Two Query Adaptive Bitprobe Schemes Storing Five Elements

In this paper, we study two-bitprobe adaptive schemes storing five eleme...
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
06/03/2018

Garbage Collection in Concurrent Sets

Garbage Collection in concurrent data structures, especially lock-free o...
research
05/21/2018

Stamp-it: A more Thread-efficient, Concurrent Memory Reclamation Scheme in the C++ Memory Model

We present Stamp-it, a new, concurrent, lock-less memory reclamation sch...
research
12/16/2022

Implementation of general formal translators

The general translator formalism and computing specific implementations ...
research
02/11/2018

Binary Pebbling Algorithms for In-Place Reversal of One-Way Hash Chains

We present optimal binary pebbling algorithms for in-place reversal (bac...

Please sign up or login with your details

Forgot password? Click here to reset