License: Creative Commons Attribution 4.0 International license (CC BY 4.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.OPODIS.2022.5
URN: urn:nbn:de:0030-drops-176253
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2023/17625/
Sheffi, Gali ;
Ramalhete, Pedro ;
Petrank, Erez
EEMARQ: Efficient Lock-Free Range Queries with Memory Reclamation
Abstract
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.
BibTeX - Entry
@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/opus/volltexte/2023/17625},
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}
}