Cache-tries: Concurrent Lock-free Hash Tries with Constant-time Operations
A. Prokopec. Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, page 137--151. ACM, (2018)
DOI: 10.1145/3178487.3178498
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.
%0 Conference Paper
%1 Prokopec:2018:CCL
%A Prokopec, Aleksandar
%B Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
%D 2018
%I ACM
%K Collections Concurrency Trees
%P 137--151
%R 10.1145/3178487.3178498
%T Cache-tries: Concurrent Lock-free Hash Tries with Constant-time Operations
%X 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.
%@ 978-1-4503-4982-6
@inproceedings{Prokopec:2018:CCL,
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.},
acmid = {3178498},
added-at = {2018-03-06T10:40:19.000+0100},
author = {Prokopec, Aleksandar},
biburl = {https://www.bibsonomy.org/bibtex/22532bde27f67b6ce0947ddcef486741b/gron},
booktitle = {Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming},
description = {Cache-tries},
doi = {10.1145/3178487.3178498},
interhash = {fb796e84d742a25ab9ff363f43980453},
intrahash = {2532bde27f67b6ce0947ddcef486741b},
isbn = {978-1-4503-4982-6},
keywords = {Collections Concurrency Trees},
location = {Vienna, Austria},
numpages = {15},
pages = {137--151},
publisher = {ACM},
series = {PPoPP'18},
timestamp = {2018-03-06T10:40:19.000+0100},
title = {{Cache-tries: Concurrent Lock-free Hash Tries with Constant-time Operations}},
year = 2018
}