On Parallel Snapshot Isolation and Release/Acquire Consistency [chapter]

Azalea Raad, Ori Lahav, Viktor Vafeiadis
2018 Lecture Notes in Computer Science  
Parallel snapshot isolation (PSI) is a standard transactional consistency model used in databases and distributed systems. We argue that PSI is also a useful formal model for software transactional memory (STM) as it has certain advantages over other consistency models. However, the formal PSI definition is given declaratively by acyclicity axioms, which most programmers find hard to understand and reason about. To address this, we develop a simple lock-based reference implementation for PSI
more » ... lt on top of the release-acquire memory model, a wellbehaved subset of the C/C++11 memory model. We prove that our implementation is sound and complete against its higher-level declarative specification. We further consider an extension of PSI allowing transactional and non-transactional code to interact, and provide a sound and complete reference implementation for the more general setting. Supporting this interaction is necessary for adopting a transactional model in programming languages.
doi:10.1007/978-3-319-89884-1_33 fatcat:ia6xooxlvzchtgqoexwlwobn5a