Making Concurrent Algorithms Detectable

06/12/2018
by   Naama Ben-David, et al.
0

Non-volatile memory (NVM) promises persistent main memory that remains correct despite loss of power. This has sparked a line of research into algorithms that can recover from a system crash. Since caches are expected to remain volatile, concurrent data structures must be redesigned to guarantee that they are left in a consistent state after a system crash (durability), and that the execution can be continued upon recovery (detectability). However, the prospect of redesigning every concurrent data structure before it can be used in NVM architectures is daunting. In this paper, we give a general construction to convert any concurrent algorithm into one that is both durable and detectable. This construction is easy to apply to any algorithm, not requiring any understanding of the algorithm's semantics, and guarantees that the algorithm's structure and correctness are preserved. We also provide an optimized transformation that works for any normalized lock-free data structure, thus allowing more efficient durable and detectable constructions for a large class of algorithms. Lastly, we present the first formal definition of detectability, and show that any detectable algorithm can be safely used inside our transformations.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/06/2020

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

The recent availability of fast, dense, byte-addressable non-volatile me...
research
04/13/2017

Two variants of the Froiduire-Pin Algorithm for finite semigroups

In this paper, we present two algorithms based on the Froidure-Pin Algor...
research
04/17/2020

Defining and Verifying Durable Opacity: Correctness for Persistent Software Transactional Memory

Non-volatile memory (NVM), aka persistent memory, is a new paradigm for ...
research
07/26/2023

Algoritmo Concurrente por Conjuntos de Pilas con Multiplicidad: SetStackLogic

This article aims to describe and explain the theoretical foundations of...
research
11/14/2022

The Path to Durable Linearizability

There is an increasing body of literature proposing new and efficient pe...
research
05/14/2021

Linearizability: a Typo

Linearizability is the de facto consistency condition for concurrent obj...
research
04/07/2022

Separation of concerning things: a simpler basis for defining and programming with the C/C++ memory model (extended version)

The C/C++ memory model provides an interface and execution model for pro...

Please sign up or login with your details

Forgot password? Click here to reset