English
Related papers

Related papers: The Lock-free $k$-LSM Relaxed Priority Queue

200 papers

Concurrent data structures are the data sharing side of parallel programming. Data structures give the means to the program to store data, but also provide operations to the program to access and manipulate these data. These operations are…

Distributed, Parallel, and Cluster Computing · Computer Science 2013-02-13 Daniel Cederman , Anders Gidenstam , Phuong Ha , Håkan Sundell , Marina Papatriantafilou , Philippas Tsigas

The concurrency literature presents a number of approaches for building non-blocking, FIFO, multiple-producer and multiple-consumer (MPMC) queues. However, only a fraction of them have high performance. In addition, many queue designs, such…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-07-15 Ruslan Nikolaev , Binoy Ravindran

Link-based data structures, such as linked lists and binary search trees, have many well-known rearrangement steps allowing for efficient implementations of insertion, deletion, and other operations. We describe a rearrangement primitive…

Data Structures and Algorithms · Computer Science 2012-03-02 Boris Alexeev , M. Brian Jacokes

Range Minimum Query (RMQ) is an important building brick of many compressed data structures and string matching algorithms. Although this problem is essentially solved in theory, with sophisticated data structures allowing for constant time…

Data Structures and Algorithms · Computer Science 2017-11-29 Tomasz Kowalski , Szymon Grabowski

Considering asynchronous shared memory systems in which any number of processes may crash, this work identifies and formally defines relaxations of queues and stacks that can be non-blocking or wait-free while being implemented using only…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-11-05 Armando Castañeda , Sergio Rajsbaum , Michel Raynal

Consider the following random process: we are given $n$ queues, into which elements of increasing labels are inserted uniformly at random. To remove an element, we pick two queues at random, and remove the element of lower label (higher…

Data Structures and Algorithms · Computer Science 2017-06-14 Dan Alistarh , Justin Kopinsky , Jerry Li , Giorgi Nadiradze

Semisort is a fundamental algorithmic primitive widely used in the design and analysis of efficient parallel algorithms. It takes input as an array of records and a function extracting a \emph{key} per record, and reorders them so that…

Data Structures and Algorithms · Computer Science 2023-04-21 Xiaojun Dong , Yunshu Wu , Zhongqi Wang , Laxman Dhulipala , Yan Gu , Yihan Sun

Compressing integer keys is a fundamental operation among multiple communities, such as database management (DB), information retrieval (IR), and high-performance computing (HPC). Recent advances in \emph{learned indexes} have inspired the…

Databases · Computer Science 2024-12-17 Qiyu Liu , Siyuan Han , Jianwei Liao , Jin Li , Jingshu Peng , Jun Du , Lei Chen

We consider a set of transmitter-receiver pairs, or links, that share a common channel and address the problem of emptying backlogged queues at the transmitters in minimum time. The problem amounts to determining activation subsets of links…

Information Theory · Computer Science 2012-07-20 Vangelis Angelakis , Anthony Ephremides , Qing He , Di Yuan

Range Minimum Query (RMQ) is an important building brick of many compressed data structures and string matching algorithms. Although this problem is essentially solved in theory, with sophisticated data structures allowing for constant time…

Data Structures and Algorithms · Computer Science 2017-07-12 Szymon Grabowski , Tomasz Kowalski

This paper presents an efficient wait-free resizable hash table. To achieve high throughput at large core counts, our algorithm is specifically designed to retain the natural parallelism of concurrent hashing, while providing wait-free…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-04-21 Panagiota Fatourou , Nikolaos D. Kallimanis , Thomas Ropars

This paper presents a new and practical approach to lock-free locks based on helping, which allows the user to write code using fine-grained locks, but run it in a lock-free manner. Although lock-free locks have been suggested in the past,…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-02-01 Naama Ben-David , Guy E. Blelloch , Yuanhao Wei

Memory reclamation for lock-based data structures is typically easy. However, it is a significant challenge for lock-free data structures. Automatic techniques such as garbage collection are inefficient or use locks, and non-automatic…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-12-05 Trevor Brown

In this paper we introduce Jiffy, the first lock-free, linearizable ordered key-value index that offers both (1) batch updates, which are put and remove operations that are executed atomically, and (2) consistent snapshots used by, e.g.,…

Data Structures and Algorithms · Computer Science 2021-02-02 Tadeusz Kobus , Maciej Kokociński , Paweł T. Wojciechowski

Data race conditions in multi-tasking software applications are prevented by serializing access to shared memory resources, ensuring data consistency and deterministic behavior. Traditionally tasks acquire and release locks to synchronize…

Distributed, Parallel, and Cluster Computing · Computer Science 2014-01-24 K. Eric Harper , Thijmen de Gooijer

Min-Cut queries are fundamental: Preprocess an undirected edge-weighted graph, to quickly report a minimum-weight cut that separates a query pair of nodes $s,t$. The best data structure known for this problem simply builds a cut-equivalent…

Data Structures and Algorithms · Computer Science 2020-09-15 Amir Abboud , Robert Krauthgamer , Ohad Trabelsi

We consider the classical problem of representing a collection of priority queues under the operations \Findmin{}, \Insert{}, \Decrease{}, \Meld{}, \Delete{}, and \Deletemin{}. In the comparison-based model, if the first four operations are…

Data Structures and Algorithms · Computer Science 2011-12-06 Amr Elmasry , Jyrki Katajainen

We give a priority queue that achieves the same amortized bounds as Fibonacci heaps. Namely, find-min requires O(1) worst-case time, insert, meld and decrease-key require O(1) amortized time, and delete-min requires $O(\log n)$ amortized…

Data Structures and Algorithms · Computer Science 2010-02-11 Amr Elmasry

This work provides the first concurrent implementation specifically designed for a double-ended priority queue (DEPQ). We do this by describing a general way to add an ExtractMax operation to any concurrent priority queue that already…

Data Structures and Algorithms · Computer Science 2025-08-20 Panagiota Fatourou , Eric Ruppert , Ioannis Xiradakis

Recent advances in random linear systems on finite fields have paved the way for the construction of constant-time data structures representing static functions and minimal perfect hash functions using less space with respect to existing…

Data Structures and Algorithms · Computer Science 2016-03-24 Marco Genuzio , Giuseppe Ottaviano , Sebastiano Vigna