1. Cache-tries
- Author
-
Aleksandar Prokopec
- Subjects
010302 applied physics ,Computer science ,Hash function ,020207 software engineering ,Parallel computing ,02 engineering and technology ,01 natural sciences ,Computer Graphics and Computer-Aided Design ,Constant (computer programming) ,Hash trie ,020204 information systems ,0103 physical sciences ,Non-blocking algorithm ,Data_FILES ,0202 electrical engineering, electronic engineering, information engineering ,Cache ,Software - Abstract
Concurrent non-blocking hash tries have good cache locality, and horizontally scalable operations. However, operations on most existing concurrent hash tries run in O (log n ) time. In this paper, we show that the concurrent hash trie operations can run in expected constant time. We present a novel lock-free concurrent hash trie design that exerts less pressure on the memory allocator. This hash trie is augmented with a quiescently consistent cache, which permits the basic operations to run in expected O (1) time. We show a statistical analysis for the constant-time bound, which, to the best of our knowledge, is the first such proof for hash tries. We also prove the safety, lock-freedom and linearizability properties. On typical workloads, our implementation demonstrates up to 5X performance improvements with respect to the previous hash trie variants.
- Published
- 2018