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.DISC.2021.14
URN: urn:nbn:de:0030-drops-148169
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2021/14816/
Cai, Wentao ;
Wen, Haosen ;
Maksimovski, Vladimir ;
Du, Mingzhe ;
Sanna, Rafaello ;
Abdallah, Shreif ;
Scott, Michael L.
Fast Nonblocking Persistence for Concurrent Data Structures
Abstract
We present a fully lock-free variant of our recent Montage system for persistent data structures. The variant, nbMontage, adds persistence to almost any nonblocking concurrent structure without introducing significant overhead or blocking of any kind. Like its predecessor, nbMontage is buffered durably linearizable: it guarantees that the state recovered in the wake of a crash will represent a consistent prefix of pre-crash execution. Unlike its predecessor, nbMontage ensures wait-free progress of the persistence frontier, thereby bounding the number of recent updates that may be lost on a crash, and allowing a thread to force an update of the frontier (i.e., to perform a sync operation) without the risk of blocking. As an extra benefit, the helping mechanism employed by our wait-free sync significantly reduces its latency.
Performance results for nonblocking queues, skip lists, trees, and hash tables rival custom data structures in the literature - dramatically faster than achieved with prior general-purpose systems, and generally within 50% of equivalent non-persistent structures placed in DRAM.
BibTeX - Entry
@InProceedings{cai_et_al:LIPIcs.DISC.2021.14,
author = {Cai, Wentao and Wen, Haosen and Maksimovski, Vladimir and Du, Mingzhe and Sanna, Rafaello and Abdallah, Shreif and Scott, Michael L.},
title = {{Fast Nonblocking Persistence for Concurrent Data Structures}},
booktitle = {35th International Symposium on Distributed Computing (DISC 2021)},
pages = {14:1--14:20},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-210-5},
ISSN = {1868-8969},
year = {2021},
volume = {209},
editor = {Gilbert, Seth},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/opus/volltexte/2021/14816},
URN = {urn:nbn:de:0030-drops-148169},
doi = {10.4230/LIPIcs.DISC.2021.14},
annote = {Keywords: Persistent Memory, Nonblocking Progress, Buffered Durable Linearizability}
}