English

Montage: A General System for Buffered Durably Linearizable Data Structures

Distributed, Parallel, and Cluster Computing 2020-09-30 v1 Data Structures and Algorithms Performance

Abstract

The recent emergence of fast, dense, nonvolatile main memory suggests that certain long-lived data might remain in its natural pointer-rich format across program runs and hardware reboots. Operations on such data 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 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. It also arranges to persist only that data minimally required to reconstruct the structure after a crash. If a crash occurs in epoch ee, all work performed in epochs ee and e1e-1 is lost, but work from prior epochs is preserved. We describe the implementation of Montage, argue its correctness, and report unprecedented throughput for persistent queues, sets/mappings, and general graphs.

Keywords

Cite

@article{arxiv.2009.13701,
  title  = {Montage: A General System for Buffered Durably Linearizable Data Structures},
  author = {Haosen Wen and Wentao Cai and Mingzhe Du and Louis Jenkins and Benjamin Valpey and Michael L. Scott},
  journal= {arXiv preprint arXiv:2009.13701},
  year   = {2020}
}
R2 v1 2026-06-23T18:51:51.553Z