Jepsen Testing — fault injection framework by Kyle Kingsbury for verifying claimed consistency guarantees of distributed databases. Shows Jepsen control node (op generator, nemesis fault injector, history recorder, Knossos/Elle checker) connected to a 5-node system-under-test. Three scenarios: setup with concurrent ops, partition-induced lost write, Knossos finding non-linearizable history. References real findings: MongoDB lost writes, Redis Sentinel split-brain, Cassandra LWT, Etcd recovery bug.
Jepsen is black-box experimental testing: generators issue concurrent operations through real clients, nemeses inject selected faults, the harness records invocation/completion histories, and checkers compare those histories with explicit models. Knossos checks linearizability of suitable objects; Elle derives transactional dependency cycles and anomalies from carefully designed workloads.
A passing run is scoped evidence for that client configuration, workload, model, fault schedule, duration, and checker. It is not a proof of all executions. A timed-out operation is normally unknown because it may have committed; erasing that ambiguity can make an invalid history look valid.
pipeline): The runner generates operations and faults, records exact outcomes, then checks a declared model.partition-stale-read): The nemesis isolates replicas while a register workload records a completed write followed by stale read.timeout-unknown): A lost response may hide a committed operation, so the history records info/unknown.knossos-register): Knossos searches for a legal sequential register execution respecting real time.elle-cycle): A transaction workload exposes dependency edges and an anomaly cycle.scoped-confidence): No anomaly found is reported with workload, faults, checker, client, version, and duration.Введите числа или выберите пресет