Memory Bounds for Concurrent Bounded Queues
Vitaly Aksenov, Nikita Koval, Petr Kuznetsov, Anton Paramonov

TL;DR
This paper investigates the memory efficiency of non-blocking bounded queues, showing that while optimal memory use is achievable under certain conditions, it generally incurs linear overhead with concurrency, highlighting fundamental limits.
Contribution
The paper characterizes the memory bounds of non-blocking bounded queues, demonstrating when memory optimality is possible and establishing linear overhead in the general case.
Findings
Memory-optimal queues are achievable with specific hardware assumptions.
In the general case, memory overhead grows linearly with concurrency.
Results provide insights into the fundamental limits of memory efficiency in concurrent data structures.
Abstract
Concurrent data structures often require additional memory for handling synchronization issues in addition to memory for storing elements. Depending on the amount of this additional memory, implementations can be more or less memory-friendly. A memory-optimal implementation enjoys the minimal possible memory overhead, which, in practice, reduces cache misses and unnecessary memory reclamation. In this paper, we discuss the memory-optimality of non-blocking bounded queues. Essentially, we investigate the possibility of constructing an implementation that utilizes a pre-allocated array to store elements and constant memory overhead, e.g., two positioning counters for enqueue(..) and dequeue() operations. Such an implementation can be readily constructed when the ABA problem is precluded, e.g., assuming that the hardware supports LL/SC instructions or all inserted elements are distinct.…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Parallel Computing and Optimization Techniques · Optimization and Search Problems
