Hopscotch Hashing

  title={Hopscotch Hashing},
  author={Maurice Herlihy and Nir Shavit and Moran Tzafrir},
We present a new class of resizable sequential and concurrent hash map algorithms directed at both uni-processor and multicore machines. [...] Key ResultThe most interesting feature of the new class of hopscotch algorithms is that they continue to deliver good performance when the hash table is more than 90% full, increasing their advantage over other algorithms as the table density grows.Expand
Lock-Free Hopscotch Hashing
The proposed lock-free version of Hopscotch Hashing overcomes some of the drawbacks associated with the original blocking version, leading to a substantial boost in scalability while maintaining attractive features like physical deletion or probe-chain compression. Expand
Enhanced chained and Cuckoo hashing methods for multi-core CPUs
The proposed chained hashing and Cuckoo hashing methods for modern computers having a lot of CPU cores with exploiting CPU cache line and hardware level lock-free operations outperform the existing methods in most cases and are very scalable in terms of the number ofCPU cores. Expand
Concurrent Hash Tables
This paper explains how to lift limitations in a provably scalable way and demonstrates that dynamic growing has a performance overhead comparable to the same generalization in sequential hash tables. Expand
Concurrent hash tables: fast and general?(!)
This work explains how to lift limitations in a provably scalable way and demonstrates that dynamic growing has a performance overhead comparable to the same generalization in sequential hash tables. Expand
Lock-Free Cuckoo Hashing
  • Nhan Nguyen, P. Tsigas
  • Computer Science
  • 2014 IEEE 34th International Conference on Distributed Computing Systems
  • 2014
This paper presents a lock-free cuckoo hashing algorithm that allows mutating operations to operate concurrently with query ones and requires only single word compare-and-swap primitives. Expand
Phase-concurrent hash tables for determinism
A deterministic phase-concurrent hash table in which operations of the same type are allowed to proceed concurrently, but operations of different types are not, and the cost of determinism is small. Expand
Performance Analysis of Hashing Techniques for Multi-core CPUs
A hash table is a fundamental data structure implementing an associative memory that maps a key to its associative value. Due to its very fast mapping operation of O(1), it has been widely used inExpand
Scalable hashing for shared memory supercomputers
It is shown that a set of approaches yields close to linear speedup for both uniform random and more difficult power law distributions, and can be used as a key kernel for fundamental paradigms such as dynamic programming and MapReduce. Expand
Dynamic-sized nonblocking hash tables
In evaluation on SPARC and x86 architectures, it is found that performance of the lock-free implementation is consistently better than the current state-of-the-art split-ordered list, and that performance for the adaptive wait-free algorithm is compelling across microbenchmark configurations. Expand
Performance Analysis of Cache-conscious Hashing Techniques for Multi-core CPUs
This work implements three cache-conscious hashing methods, linear hashing and chained hashing, and analyzes their performance under Intel 32-core CPU of Nehalem microarchitecture, and finds that the hopscotch hashing is relatively not efficient than other hash methods. Expand


Split-ordered lists: lock-free extensible hash tables
Empirical tests show the first lock-free implementation of an extensible hash table running on current architectures provides concurrent insert, delete, and search operations with an expected O(1) cost and is well suited for real-time applications. Expand
Cuckoo hashing
A simple dictionary with worst case constant lookup time, equaling the theoretical performance of the classic dynamic perfect hashing scheme of Dietzfelbinger et al, and is competitive with the best known dictionaries having an average case (but no nontrivial worst case) guarantee on lookup time. Expand
Non-blocking Hashtables with Open Addressing
We present the first non-blocking hashtable based on open addressing that provides the following benefits: it combines good cache locality, accessing a single cacheline if there are no collisions,Expand
Obstruction-free synchronization: double-ended queues as an example
We introduce obstruction-freedom, a new nonblocking property for shared data structure implementations. This property is strong enough to avoid the problems associated with locks, but it is weakerExpand
Introduction to Algorithms, Second Edition
The complexity class P is formally defined as the set of concrete decision problems that are polynomial-time solvable, and encodings are used to map abstract problems to concrete problems. Expand
Introduction to Algorithms
The updated new edition of the classic Introduction to Algorithms is intended primarily for use in undergraduate or graduate courses in algorithms or data structures and presents a rich variety of algorithms and covers them in considerable depth while making their design and analysis accessible to all levels of readers. Expand
Linearizability: a correctness condition for concurrent objects
This paper defines linearizability, compares it to other correctness conditions, presents and demonstrates a method for proving the correctness of implementations, and shows how to reason about concurrent objects, given they are linearizable. Expand
Handbook of algorithms and data structures: in Pascal and C (2nd ed.)
This chapter discusses algorithms in the context of graph programming, and some examples of algorithms used in the programming languages such as Python and Ruby are discussed. Expand
The Art of Computer Programming
The arrangement of this invention provides a strong vibration free hold-down mechanism while avoiding a large pressure drop to the flow of coolant fluid. Expand
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
  • The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
  • 1997