Understanding Distributed Systems with Deterministic Simulation
summary
Argues that stubbing clocks, network, threads and disks lets tests control progress so failure runs are repeatable; demonstrates a miniature YugaByte DB replica implementing hybrid logical clocks and snapshot isolation under specific clock skews and message interleavings, and shows those deterministic runs feed Jepsen checkers for formal validation. Claims deterministic simulation (popularized by FoundationDB) makes previously flaky fault scenarios reproducible, ties into a catalog of ~30 distributed patterns, and produces JUnit tests that consistently reproduce and diagnose bugs.
AI-written summary · about
chapters (7)
- 0:00Deterministic simulation intro
- 3:07Why distributed systems matter
- 5:59Testing with faults
- 11:39Non-determinism sources
- 15:57Controlling simulation progress
- 21:48Benefits of deterministic testing
- 26:05Conclusion
related talks
40mTesting Distributed Systems w/ Deterministic Simulation
42mSimulation Testing
43mWhat We Talk About When We Talk About Distributed Systems
27mDistributed Systems, Like It or Not
25mGrowing Distributed Systems
48mThe Verification of a Distributed System
42mJepsen 9: A Fsyncing Feeling
45mDo Distributed Systems they said. It'll be fun they said.
