NVTraverse: In NVRAM Data Structures, the Destination is More Important than the Journey

04/06/2020
by   Michal Friedman, et al.
0

The recent availability of fast, dense, byte-addressable non-volatile memory has led to increasing interest in the problem of designing and specifying durable data structures that can recover from system crashes. However, designing durable concurrent data structures that are efficient and also satisfy a correctness criterion has proven to be very difficult, leading many algorithms to be inefficient or incorrect in a concurrent setting. In this paper, we present a general transformation that takes a lock-free data structure from a general class called traversal data structure (that we formally define) and automatically transforms it into an implementation of the data structure for the NVRAM setting that is provably durably linearizable and highly efficient. The transformation hinges on the observation that many data structure operations begin with a traversal phase that does not need to be persisted, and thus we only begin persisting when the traversal reaches its destination. We demonstrate the transformation's efficiency through extensive measurements on a system with Intel's recently released Optane DC persistent memory, showing that it can outperform competitors on many workloads.

READ FULL TEXT

page 12

page 13

research
07/05/2020

Constant-Time Lazy Snapshots Supporting General Queries on Concurrent Data Structures

We present a general transformation that takes any concurrent data struc...
research
06/12/2018

Making Concurrent Algorithms Detectable

Non-volatile memory (NVM) promises persistent main memory that remains c...
research
12/01/2022

Unexpected Scaling in Path Copying Trees

Although a wide variety of handcrafted concurrent data structures have b...
research
01/07/2020

Data Structure Primitives on Persistent Memory: An Evaluation

Persistent Memory (PM), as already available e.g. with Intel Optane DC P...
research
06/03/2019

Assessing Performance Implications of Deep Copy Operations via Microbenchmarking

As scientific frameworks become sophisticated, so do their data structur...
research
09/17/2021

Generating Concurrent Programs From Sequential Data Structure Knowledge Using Answer Set Programming

We tackle the problem of automatically designing concurrent data structu...
research
04/17/2020

Reducing Commutativity Verification to Reachability with Differencing Abstractions

Commutativity of data structure methods is of ongoing interest, with roo...

Please sign up or login with your details

Forgot password? Click here to reset