Reasoning about Weak Isolation Levels in Separation Logic
Anders Alnor Mathiasen, L\'eon Gondelman, L\'eon Ducruet, Amin Timany, Lars Birkedal

TL;DR
This paper formalizes weak isolation levels in separation logic, enabling reasoning about their implementations and verifying a key-value database satisfies snapshot isolation, which is crucial for industrial database correctness.
Contribution
It introduces modular separation logic specifications for weak isolation levels and verifies an implementation against these specifications, bridging theory and practical database systems.
Findings
Formal separation logic specifications for weak isolation levels.
Verification of a key-value database implementation satisfying snapshot isolation.
Implication proofs between different isolation levels.
Abstract
Consistency guarantees among concurrently executing transactions in local- and distributed systems, commonly referred to as isolation levels, have been formalized in a number of models. Thus far, no model can reason about executable implementations of databases or local transaction libraries providing weak isolation levels. Weak isolation levels are characterized by being highly concurrent and, unlike their stronger counterpart serializability, they are not equivalent to the consistency guarantees provided by a transaction library implemented using a global lock. Industrial-strength databases almost exclusively implement weak isolation levels as their default level. This calls for formalism as numerous bugs violating isolation have been detected in these databases. In this paper, we formalize three weak isolation levels in separation logic, namely read uncommitted, read committed, and…
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
TopicsFormal Methods in Verification · Logic, programming, and type systems · Logic, Reasoning, and Knowledge
