Verifying Visibility-Based Weak Consistency
Siddharth Krishna, Michael Emmi, Constantin Enea, Dejan Jovanovic

TL;DR
This paper presents a methodology for verifying that concurrent objects in multithreaded programs adhere to weak consistency models by using annotations and automated proofs, ensuring correctness despite relaxed visibility guarantees.
Contribution
It introduces a formal, annotation-based approach for proving weak-consistency adherence in concurrent object implementations using simulation proofs and automated theorem proving.
Findings
Methodology effectively verifies weak-consistency in Java concurrent objects.
Annotations can be automated by tracking memory location writers.
Formal proofs ensure correctness despite relaxed visibility assumptions.
Abstract
Multithreaded programs generally leverage efficient and thread-safe concurrent objects like sets, key-value maps, and queues. While some concurrent-object operations are designed to behave atomically, each witnessing the atomic effects of predecessors in a linearization order, others forego such strong consistency to avoid complex control and synchronization bottlenecks. For example, contains (value) methods of key-value maps may iterate through key-value entries without blocking concurrent updates, to avoid unwanted performance bottlenecks, and consequently overlook the effects of some linearization-order predecessors. While such weakly-consistent operations may not be atomic, they still offer guarantees, e.g., only observing values that have been present. In this work we develop a methodology for proving that concurrent object implementations adhere to weak-consistency…
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 · Logic, programming, and type systems · Parallel Computing and Optimization Techniques
