Multi-Version Concurrency Control (MVCC) is a common mechanism for achieving linearizable range queries in database systems and concurrent data-structures. The core idea is to keep previous versions of nodes to serve range queries, while still providing atomic reads and updates. Existing concurrent data-structure implementations, that support linearizable range queries, are either slow, use locks, or rely on blocking reclamation schemes. We present EEMARQ, the first scheme that uses MVCC with lock-free memory reclamation to obtain a fully lock-free data-structure supporting linearizable inserts, deletes, contains, and range queries. Evaluation shows that EEMARQ outperforms existing solutions across most workloads, with lower space overhead and while providing full lock freedom.
@article{arxiv.2210.17086,
title = {EEMARQ: Efficient Lock-Free Range Queries with Memory Reclamation},
author = {Gali Sheffi and Pedro Ramalhete and Erez Petrank},
journal= {arXiv preprint arXiv:2210.17086},
year = {2022}
}