The recent emergence of fast, dense, nonvolatile main memory suggests that certain long-lived data structures might remain in their natural, pointer-rich format across program runs and hardware reboots. Operations on such structures must be instrumented with explicit write-back and fence instructions to ensure consistency in the wake of a crash. Techniques to minimize the cost of this instrumentation are an active topic of current research. We present what we believe to be the first general-purpose approach to building buffered durably linearizable persistent data structures, and a system, Montage, to support that approach. Montage is built on top of the Ralloc nonblocking persistent allocator. It employs a slow-ticking epoch clock, and ensures that no operation appears to span an epoch boundary. If a crash occurs in epoch e, all work performed in epochs e and e-1 is lost, but all work from prior epochs is preserved. We describe the implementation of Montage, argue its correctness, and report on experiments confirming excellent performance for operations on queues, sets/mappings, and general graphs.
@InProceedings{wen_et_al:LIPIcs.DISC.2020.52, author = {Wen, Haosen and Cai, Wentao and Du, Mingzhe and Valpey, Benjamin and Scott, Michael L.}, title = {{Brief Announcement: Building Fast Recoverable Persistent Data Structures with Montage}}, booktitle = {34th International Symposium on Distributed Computing (DISC 2020)}, pages = {52:1--52:3}, series = {Leibniz International Proceedings in Informatics (LIPIcs)}, ISBN = {978-3-95977-168-9}, ISSN = {1868-8969}, year = {2020}, volume = {179}, editor = {Attiya, Hagit}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.DISC.2020.52}, URN = {urn:nbn:de:0030-drops-131304}, doi = {10.4230/LIPIcs.DISC.2020.52}, annote = {Keywords: Durable linearizability, consistency, persistence, fault tolerance} }
Feedback for Dagstuhl Publishing