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

04/17/2020
by   Eleni Bila, et al.
0

Non-volatile memory (NVM), aka persistent memory, is a new paradigm for memory that preserves its contents even after power loss. The expected ubiquity of NVM has stimulated interest in the design of novel concepts ensuring correctness of concurrent programming abstractions in the face of persistency. So far, this has lead to the design of a number of persistent concurrent data structures, built to satisfy an associated notion of correctness: durable linearizability. In this paper, we transfer the principle of durable concurrent correctness to the area of software transactional memory (STM). Software transactional memory algorithms allow for concurrent access to shared state. Like linearizability for concurrent data structures, opacity is the established notion of correctness for STMs. First, we provide a novel definition of durable opacity extending opacity to handle crashes and recovery in the context of NVM. Second, we develop a durably opaque version of an existing STM algorithm, namely the Transactional Mutex Lock (TML). Third, we design a proof technique for durable opacity based on refinement between TML and an operational characterisation of durable opacity by adapting the TMS2 specification. Finally, we apply this proof technique to show that the durable version of TML is indeed durably opaque. The correctness proof is mechanized within Isabelle.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/30/2020

Modularising Verification Of Durable Opacity

Non-volatile memory (NVM), also known as persistent memory, is an emergi...
research
03/16/2020

Adapting Persistent Data Structures for Concurrency and Speculation

This work unifies insights from the systems and functional programming c...
research
08/23/2022

Survey of Persistent Memory Correctness Conditions

The study of concurrent persistent programs has seen a surge of activity...
research
11/14/2022

The Path to Durable Linearizability

There is an increasing body of literature proposing new and efficient pe...
research
06/12/2018

Making Concurrent Algorithms Detectable

Non-volatile memory (NVM) promises persistent main memory that remains c...
research
03/15/2019

Replication-Aware Linearizability

Geo-distributed systems often replicate data at multiple locations to ac...
research
11/30/2021

Verifying and Optimizing Compact NUMA-Aware Locks on Weak Memory Models

Developing concurrent software is challenging, especially if it has to r...

Please sign up or login with your details

Forgot password? Click here to reset