Montage: A General System for Buffered Durably Linearizable Data Structures

09/29/2020
by   Haosen Wen, et al.
0

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 e, all work performed in epochs e and e-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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/03/2023

Transactional Composition of Nonblocking Data Structures

This paper introduces nonblocking transaction composition (NBTC), a new ...
research
05/29/2019

Don't Persist All : Efficient Persistent Data Structures

Data structures used in software development have inbuilt redundancy to ...
research
07/07/2021

Persistent Software Combining

We study the performance power of software combining in designing persis...
research
05/20/2021

Fast Nonblocking Persistence for Concurrent Data Structures

We present a fully lock-free variant of the recent Montage system for pe...
research
03/15/2022

Practical Detectability for Persistent Lock-Free Data Structures

Persistent memory (PM) is an emerging class of storage technology that c...
research
03/14/2020

Understanding and Optimizing Persistent Memory Allocation

The proliferation of fast, dense, byte-addressable nonvolatile memory su...
research
06/08/2020

Toward a Better Understanding and Evaluation of Tree Structures on Flash SSDs

Solid-state drives (SSDs) are extensively used to deploy persistent data...

Please sign up or login with your details

Forgot password? Click here to reset