jepsen.tests.linearizable-register
Common generators and checkers for linearizability over a set of independent registers. Clients should understand three functions, for writing a value, reading a value, and compare-and-setting a value from v to v’. Reads receive nil
, and replace it with the value actually read.
{:type :invoke, :f :write, :value [k v]}
{:type :invoke, :f :read, :value [k nil]}
{:type :invoke, :f :cas, :value [k [v v']]}
test
(test opts)
A partial test, including a generator, model, and checker. You’ll need to provide a client. 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. :model A model for checking. Default is (model/cas-register). :per-key-limit Maximum number of ops per key. :process-limit Maximum number of processes that can interact with a given key. Default 20.