Lock-free Cuckoo Hashing
Paper in proceedings, 2014
This paper presents a lock-free cuckoo hashing algorithm; to the best of our knowledge this is the ﬁrst lock-free cuckoo hashing in the literature. The algorithm allows mutating operations to operate concurrently with query ones and requires only single word compare-and-swap primitives. Query of items can operate concurrently with others mutating operations, thanks to the two-round query protocol enhanced
with a logical clock technique. When an insertion triggers a
sequence of key displacements, instead of locking the whole
cuckoo path, our algorithm breaks down the chain of relocations into several single relocations which can be executed independently and concurrently with other operations. A ﬁne tuned synchronization and a helping mechanism for relocation are designed. The mechanisms allow high concurrency and provide progress guarantees for the data structure’s operations. Our experimental results show that our lock-free cuckoo hashing performs consistently better than two efﬁcient lock-based hashing algorithms, the chained and the hopscotch hash map, in different access pattern scenarios.
Concurrent data structures