Verifying correctness of persistent concurrent data structures: a sound and complete method

10Citations
Citations of this article
8Readers
Mendeley users who have this article in their library.

Abstract

Non-volatile memory (NVM), aka persistent memory, is a new memory paradigm that preserves its contents even after power loss. The expected ubiquity of NVM has stimulated interest in the design of persistentconcurrent data structures, together with associated notions of correctness. In this paper, we present a formal proof technique for durable linearizability, which is a correctness criterion that extends linearizability to handle crashes and recovery in the context ofNVM.Our proofs are based on refinement of Input/Output automata (IOA) representations of concurrent data structures. To this end, we develop a generic procedure for transforming any standard sequential data structure into a durable specification and prove that this transformation is both sound and complete. Since the durable specification only exhibits durably linearizable behaviours, it serves as the abstract specification in our refinement proof. We exemplify our technique on a recently proposed persistentmemory queue that builds on Michael and Scott’s lock-free queue. To support the proofs, we describe an automated translation procedure from code to IOA and a thread-local proof technique for verifying correctness of invariants.

Cite

CITATION STYLE

APA

Derrick, J., Doherty, S., Dongol, B., Schellhorn, G., & Wehrheim, H. (2021). Verifying correctness of persistent concurrent data structures: a sound and complete method. Formal Aspects of Computing, 33(4–5), 547–573. https://doi.org/10.1007/s00165-021-00541-8

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free