English
Related papers

Related papers: Lock-free dynamic hash tables with open addressing

200 papers

It is becoming increasingly difficult to improve the performance of a a single process (thread) on a computer due to physical limitations. Modern systems use multi-core processors in which multiple processes (threads) may run concurrently.…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-11-05 Jordan Malek

A standard design pattern found in many concurrent data structures, such as hash tables or ordered containers, is an alternation of parallelizable sections that incur no data conflicts and critical sections that must run sequentially and…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-10-13 Vitaly Aksenov , Dan Alistarh , Petr Kuznetsov

In this paper we examine the issues involved in adding concurrency to the Robin Hood hash table algorithm. We present a non-blocking obstruction-free K-CAS Robin Hood algorithm which requires only a single word compare-and-swap primitive,…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-11-15 Robert Kelly , Barak A. Pearlmutter , Phil Maguire

Hash tables are used in a plethora of applications, including database operations, DNA sequencing, string searching, and many more. As such, there are many parallelized hash tables targeting multicore, distributed, and accelerator-based…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-04-05 Alok Tripathy , Oded Green

Lock-free data objects offer several advantages over their blocking counterparts, such as being immune to deadlocks and convoying and, more importantly, being highly concurrent. But they share a common disadvantage in that the operations…

Distributed, Parallel, and Cluster Computing · Computer Science 2009-10-05 Daniel Cederman , Philippas Tsigas

Random hashing can provide guarantees regarding the performance of data structures such as hash tables---even in an adversarial setting. Many existing families of hash functions are universal: given two data objects, the probability that…

Data Structures and Algorithms · Computer Science 2018-10-16 Dmytro Ivanchykhin , Sergey Ignatchenko , Daniel Lemire

The runtime system of dynamic languages such as Prolog or Lisp and their derivatives contain a symbol table, in Prolog often called the atom table. A simple dynamically resizing hash-table used to be an adequate way to implement this table.…

Programming Languages · Computer Science 2016-08-04 Jan Wielemaker , Keri Harris

We describe a consistent hashing algorithm which performs multiple lookups per key in a hash table of nodes. It requires no additional storage beyond the hash table, and achieves a peak-to-average load ratio of 1 + epsilon with just 1 +…

Data Structures and Algorithms · Computer Science 2015-05-04 Ben Appleton , Michael O'Reilly

This paper presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block…

Databases · Computer Science 2024-06-17 Antonios Katsarakis , Vasilis Gavrielatos , Nikos Ntarmos

Persistent memory (PM) is an emerging class of storage technology that combines the benefits of DRAM and SSD. This characteristic inspires research on persistent objects in PM with fine-grained concurrency control. Among such objects,…

Programming Languages · Computer Science 2022-03-16 Kyeongmin Cho , Seungmin Jeon , Jeehoon Kang

Hash tables are ubiquitous and used in a wide range of applications for efficient probing of large and unsorted data. If designed properly, hash-tables can enable efficients look ups in a constant number of operations or commonly referred…

Data Structures and Algorithms · Computer Science 2019-07-08 Oded Green

Graph algorithms applied in many applications, including social networks, communication networks, VLSI design, graphics, and several others, require dynamic modifications -- addition and removal of vertices and/or edges -- in the graph.…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-01-16 Bapi Chatterjee , Sathya Peri , Muktikanta Sa , Nandini Singhal

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

Hardware Transactional Memory (HTM) allows lock-free programming as easy as with traditional coarse-grain locks or similar, while benefiting from the performance advantages of fine-grained locking. Many HTM implementations have been…

Hardware Architecture · Computer Science 2025-10-21 Konstantinos Kafousis

We present Hapax Locks, a novel locking algorithm that is simple, enjoys constant-time arrival and unlock paths, provides FIFO admission order, and which is also space efficient and generates relatively little coherence traffic under…

Distributed, Parallel, and Cluster Computing · Computer Science 2026-01-14 Dave Dice , Alex Kogan

Scalable ordered maps must ensure that range queries, which operate over many consecutive keys, provide intuitive semantics (e.g., linearizability) without degrading the performance of concurrent insertions and removals. These goals are…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-10-11 Matthew Rodriguez , Vitaly Aksenov , Michael Spear

Design of an efficient thread-safe concurrent data structure is a balancing act between its implementation complexity and performance. Lock-based concurrent data structures, which are relatively easy to derive from their sequential…

Programming Languages · Computer Science 2024-08-27 Callista Le , Kiran Gopinathan , Koon Wen Lee , Seth Gilbert , Ilya Sergey

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

We present a randomized approach for wait-free locks with strong bounds on time and fairness in a context in which any process can be arbitrarily delayed. Our approach supports a tryLock operation that is given a set of locks, and code to…

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

Work-stealing is a widely used technique for balancing irregular parallel workloads, and most modern runtime systems adopt lock-free work-stealing deques to reduce contention and improve scalability. However, existing algorithms are…

Distributed, Parallel, and Cluster Computing · Computer Science 2026-03-09 Raja Sai Nandhan Yadav Kataru , Danial Davarnia , Ali Jannesari