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

08/13/2019
by   Ruslan Nikolaev, et al.
0

We present a new lock-free multiple-producer and multiple-consumer (MPMC) FIFO queue design which is scalable and, unlike existing high-performant queues, very memory efficient. Moreover, the design is ABA safe and does not require any external memory allocators or safe memory reclamation techniques, typically needed by other scalable designs. In fact, this queue itself can be leveraged for object allocation and reclamation, as in data pools. We use FAA (fetch-and-add), a specialized and more scalable than CAS (compare-and-set) instruction, on the most contended hot spots of the algorithm. However, unlike prior attempts with FAA, our queue is both lock-free and linearizable. We propose a general approach, SCQ, for bounded queues. This approach can easily be extended to support unbounded FIFO queues which can store an arbitrary number of elements. SCQ is portable across virtually all existing architectures and flexible enough for a wide variety of uses. We measure the performance of our algorithm on the x86-64 and PowerPC architectures. Our evaluation validates that our queue has exceptional memory efficiency compared to other algorithms and its performance is often comparable to, or exceeding that of state-of-the-art scalable algorithms.

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
05/20/2019

Hyaline: Fast and Transparent Lock-Free Memory Reclamation

We present a new lock-free safe memory reclamation algorithm, Hyaline, w...
research
10/27/2020

Jiffy: A Fast, Memory Efficient, Wait-Free Multi-Producers Single-Consumer Queue

In applications such as sharded data processing systems, sharded in-memo...
research
05/12/2023

A Wait-free Queue with Polylogarithmic Step Complexity

We present a novel linearizable wait-free queue implementation using sin...
research
05/16/2023

Stack number and queue number of graphs

In this paper we give an overview of the graph invariants queue number a...
research
08/05/2021

Crystalline: Fast and Memory Efficient Wait-Free Reclamation

Historically, memory management based on lock-free reference counting wa...
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