Reducing Opacity to Linearizability: A Sound and Complete Method
Alasdair Armstrong, Brijesh Dongol, Simon Doherty

TL;DR
This paper introduces a sound and complete method to simplify proving opacity in transactional memory by reducing it to linearizability, verified through mechanised proofs and applicable to relaxed memory models.
Contribution
It presents a novel abstraction-based approach that simplifies opacity proofs to linearizability, extending to relaxed memory models and enabling higher-level TM design analysis.
Findings
Verified TML and NORec for opacity using the method
Extended techniques to relaxed memory models like TSO
Developed a variation of NORec with fast-path reads
Abstract
Transactional memory is a mechanism that manages thread synchronisation on behalf of a programmer so that blocks of code execute with an illusion of atomicity. The main safety criterion for transactional memory is opacity, which defines conditions for serialising concurrent transactions. Proving opacity is complicated because it allows concurrent transactions to observe distinct memory states, while TM implementations are typically based on one single shared store. This paper presents a sound and complete method, based on coarse-grained abstraction, for reducing proofs of opacity to the relatively simpler correctness condition: linearizability. We use our methods to verify TML and NORec from the literature and show our techniques extend to relaxed memory models by showing that both are opaque under TSO without requiring additional fences. Our methods also elucidate TM designs at…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Security and Verification in Computing · Parallel Computing and Optimization Techniques
