Testing Distributed Systems - ligurio/sqa-wiki GitHub Wiki
Safety of distributed databases, queues, consensus systems, etc.
- Generalized Isolation Level Definitions
- Weak Consistency: A Generalized Theory and Optimistic Implementations for Distributed Transactions
- Knossos Research https://github.com/jepsen-io/knossos/tree/master/research
- Elle: Inferring Isolation Anomalies from Experimental Observations
- Linearizability versus Serializability
- A Critique of ANSI SQL Isolation Levels (notes)
- Testing for Linearizability - Gavin Lowe
- Principles of Eventual Consistency
- Consistency in Non-Transactional Distributed Storage Systems
- Linearizability: A Correctness Condition for Concurrent Objects
- A Read-Only Transaction Anomaly Under Snapshot Isolation
- PRECISELY SERIALIZABLE SNAPSHOT ISOLATION
Linearizability checkers
Linearizability checking based on pseudocode from Lu et al., SOSP '15, and checking of consistency semantics describing causality and monotonicity of operations within and across sessions (e.g., monotonic writes, monotonic reads, sequential consistency, regular semantics, causal consistency --- survey provides an overview of all these consistency semantics).
C++
Linearizability checkerJava
WatCAScala
conver (Paper, Slides)Clojure
KnossosClojure
ElleClojure
fast-jepsen- Line-up: a complete and automatic linearizability checker
SPIN
SPIN as a Linearizability Checker under Weak Memory ModelsGo
https://github.com/pingcap/tipocket/tree/master/pkg/elleGo
porcupine