Cache-Aware Lock-Free Concurrent Hash Tries

This report describes an implementation of a non-blocking concurrent shared-memory hash trie based on single-word compare-and-swap instructions. Insert, lookup and remove operations modifying different parts of the hash trie can be run independent of each other and do not contend. Remove operations...

Full description

Saved in:
Bibliographic Details
Main Authors Prokopec, Aleksandar, Bagwell, Phil, Odersky, Martin
Format Journal Article
LanguageEnglish
Published 18.09.2017
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:This report describes an implementation of a non-blocking concurrent shared-memory hash trie based on single-word compare-and-swap instructions. Insert, lookup and remove operations modifying different parts of the hash trie can be run independent of each other and do not contend. Remove operations ensure that the unneeded memory is freed and that the trie is kept compact. A pseudocode for these operations is presented and a proof of correctness is given -- we show that the implementation is linearizable and lock-free. Finally, benchmarks are presented which compare concurrent hash trie operations against the corresponding operations on other concurrent data structures, showing their performance and scalability.
Bibliography:EPFL-REPORT-166908
DOI:10.48550/arxiv.1709.06056