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

10/27/2020
by   Dolev Adas, et al.
0

In applications such as sharded data processing systems, sharded in-memory key-value stores, data flow programming and load sharing applications, multiple concurrent data producers are feeding requests into the same data consumer. This can be naturally realized through concurrent queues, where each consumer pulls its tasks from its dedicated queue. For scalability, wait-free queues are often preferred over lock based structures. The vast majority of wait-free queue implementations, and even lock-free ones, support the multi-producer multi-consumer model. Yet, this comes at a premium, since implementing wait-free multi-producer multi-consumer queues requires utilizing complex helper data structures. The latter increases the memory consumption of such queues and limits their performance and scalability. Additionally, many such designs employ (hardware) cache unfriendly memory access patterns. In this work we study the implementation of wait-free multi-producer single-consumer queues. Specifically, we propose Jiffy, an efficient memory frugal novel wait-free multi-producer single-consumer queue and formally prove its correctness. We then compare the performance and memory requirements of Jiffy with other state of the art lock-free and wait-free queues. We show that indeed Jiffy can maintain good performance with up to 128 threads, delivers up to 50 and consumes  90

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/17/2023

Concurrent Deterministic Skiplist and Other Data Structures

Skiplists are used in a variety of applications for storing data subject...
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/22/2022

Kafka Consumer Group Autoscaler

Message brokers enable asynchronous communication between data producers...
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
12/09/2020

Virtual-Link: A Scalable Multi-Producer, Multi-Consumer Message Queue Architecture for Cross-Core Communication

Cross-core communication is increasingly a bottleneck as the number of p...
research
10/05/2020

Synchronizer-Free Digital Link Controller

This work presents a producer-consumer link between two independent cloc...
research
12/23/2020

Flat-Combining-Based Persistent Data Structures for Non-Volatile Memory

Flat combining (FC) is a synchronization paradigm in which a single thre...

Please sign up or login with your details

Forgot password? Click here to reset