Liking cljdoc? Tell your friends :D

lite.core

The runner: config in, verdict out.

A run is Jepsen's own pipeline with the parts a Lite user shouldn't have to see kept internal -- generator -> the user's adapter (via the bridge) -> history -> the workload's checker.

The runner: config in, verdict out.

A run is Jepsen's own pipeline with the parts a Lite user shouldn't have to
see kept internal -- generator -> the user's adapter (via the bridge) ->
history -> the workload's checker.
raw docstring

default-nodesclj

An in-process target is one logical node. Later target-types supply their own; nothing here branches on which.

An in-process target is one logical node. Later target-types supply their
own; nothing here branches on which.
sourceraw docstring

default-targetclj

source

runclj

(run config)

Runs config:

{:adapter <a ClientAdapter> :handler (fn [conn op] ...) ; the user's op -> target-call mapping :workload :register ; optional; :register is the default :workload-opts {...} ; optional; see the workload's ns :concurrency <n> ; optional; the workload picks otherwise :time-limit <seconds> ; optional; otherwise the run ends after ; the workload's op count :name "..." ; optional :target {:type :in-process} ; optional; :in-process is the default ; see lite.target.<type> for its config :nemesis [:crash] ; optional; faults to inject :nemesis-opts {...}} ; optional; :in-process takes :crashes ; and :crash-interval, the others ; :faults (a cap) and :fault-interval; ; :compose also :fault-duration

Interprets the workload's generator against the user's adapter -- with the nemesis, if any, perturbing the target as it goes -- checks the resulting history, and returns {:valid? ..., :results ..., :history ...}. The verdict is printed and, like the history, written to store/.

prepare-test supplies the :start-time/:concurrency/:barrier the interpreter needs and makes the generator forgettable; the store handle has to be open for the interpreter's history writer, and stays open through analysis so the checker's results land next to the history.

A target-type that runs the target -- :local-process, :compose -- starts it here and stops it in the finally, whatever the run did. The ones that don't own a target no-op.

Runs `config`:

  {:adapter       <a ClientAdapter>
   :handler       (fn [conn op] ...) ; the user's op -> target-call mapping
   :workload      :register          ; optional; :register is the default
   :workload-opts {...}              ; optional; see the workload's ns
   :concurrency   <n>                ; optional; the workload picks otherwise
   :time-limit    <seconds>          ; optional; otherwise the run ends after
                                     ; the workload's op count
   :name          "..."            ; optional
   :target        {:type :in-process} ; optional; :in-process is the default
                                     ; see lite.target.<type> for its config
   :nemesis       [:crash]           ; optional; faults to inject
   :nemesis-opts  {...}}             ; optional; :in-process takes :crashes
                                     ; and :crash-interval, the others
                                     ; :faults (a cap) and :fault-interval;
                                     ; :compose also :fault-duration

Interprets the workload's generator against the user's adapter -- with the
nemesis, if any, perturbing the target as it goes -- checks the resulting
history, and returns `{:valid? ..., :results ..., :history ...}`. The verdict
is printed and, like the history, written to `store/`.

`prepare-test` supplies the `:start-time`/`:concurrency`/`:barrier` the
interpreter needs and makes the generator forgettable; the store handle has
to be open for the interpreter's history writer, and stays open through
analysis so the checker's results land next to the history.

A target-type that runs the target -- `:local-process`, `:compose` -- starts
it here and stops it in the `finally`, whatever the run did. The ones that
don't own a target no-op.
sourceraw docstring

test-mapclj

(test-map {:keys [adapter handler workload workload-opts concurrency time-limit
                  name nodes target nemesis nemesis-opts]})

Builds the Jepsen test map for config. Everything not named here keeps noop-test's defaults: a noop os/db is correct for an in-process target, which has no node to configure.

Builds the Jepsen test map for `config`. Everything not named here keeps
`noop-test`'s defaults: a noop os/db is correct for an in-process target,
which has no node to configure.
sourceraw docstring

validate!clj

(validate! {:keys [target nemesis]})

Checks the combinations a run can't recover from -- an unrunnable target-type, or a fault that target-type can't inject -- before anything is built, opened or generated. Throws with an explanation; returns config.

Checks the combinations a run can't recover from -- an unrunnable
target-type, or a fault that target-type can't inject -- before anything is
built, opened or generated. Throws with an explanation; returns config.
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close