jepsen.tests.causal-reverse
Checks for a strict serializability anomaly in which T1 < T2, but T2 is visible without T1.
We perform concurrent blind inserts across n keys, and meanwhile, perform reads of n keys in a transaction. To verify, we replay the history, tracking the writes which were known to have completed before the invocation of any write w_i. If w_i is visible, and some w_j < w_i is not visible, we’ve found a violation of strict serializability.
Splits keys up onto different tables to make sure they fall in different shard ranges
checker
(checker)
Takes a history of writes and reads. Verifies that subquent writes do not appear without prior acknowledged writes.
errors
(errors history expected)
Takes a history and an expected graph of write precedence, returning ops that violate the expected write order.
workload
(workload opts)
A package of a generator and checker. Options:
:nodes A set of nodes you’re going to operate on. We only care about the count, so we can figure out how many workers to use per key. :per-key-limit Maximum number of ops per key. Default 500.