Memory Bounds for Concurrent Bounded Queues

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Aksenov, Vitaly, Koval, Nikita, Kuznetsov, Petr, Paramonov, Anton
Formato: Preprint
Publicado: 2021
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866914642382553088
author Aksenov, Vitaly
Koval, Nikita
Kuznetsov, Petr
Paramonov, Anton
author_facet Aksenov, Vitaly
Koval, Nikita
Kuznetsov, Petr
Paramonov, Anton
contents 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. However, in the general case, we show that a memory-optimal non-blocking bounded queue incurs linear overhead in the number of concurrent processes. These results not only provide helpful intuition for concurrent algorithm developers but also open a new research avenue on the memory-optimality phenomenon in concurrent data structures.
format Preprint
id arxiv_https___arxiv_org_abs_2104_15003
institution arXiv
publishDate 2021
record_format arxiv
spellingShingle Memory Bounds for Concurrent Bounded Queues
Aksenov, Vitaly
Koval, Nikita
Kuznetsov, Petr
Paramonov, Anton
Distributed, Parallel, and Cluster Computing
Data Structures and Algorithms
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. However, in the general case, we show that a memory-optimal non-blocking bounded queue incurs linear overhead in the number of concurrent processes. These results not only provide helpful intuition for concurrent algorithm developers but also open a new research avenue on the memory-optimality phenomenon in concurrent data structures.
title Memory Bounds for Concurrent Bounded Queues
topic Distributed, Parallel, and Cluster Computing
Data Structures and Algorithms
url https://arxiv.org/abs/2104.15003