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.
@InProceedings{sheffi_et_al:LIPIcs.OPODIS.2022.5, author = {Sheffi, Gali and Ramalhete, Pedro and Petrank, Erez}, title = {{EEMARQ: Efficient Lock-Free Range Queries with Memory Reclamation}}, booktitle = {26th International Conference on Principles of Distributed Systems (OPODIS 2022)}, pages = {5:1--5:22}, series = {Leibniz International Proceedings in Informatics (LIPIcs)}, ISBN = {978-3-95977-265-5}, ISSN = {1868-8969}, year = {2023}, volume = {253}, editor = {Hillel, Eshcar and Palmieri, Roberto and Rivi\`{e}re, Etienne}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.OPODIS.2022.5}, URN = {urn:nbn:de:0030-drops-176253}, doi = {10.4230/LIPIcs.OPODIS.2022.5}, annote = {Keywords: safe memory reclamation, lock-freedom, snapshot, concurrency, range query} }
Feedback for Dagstuhl Publishing