Skip to content

0.3.10

Latest

Choose a tag to compare

@aphyr aphyr released this 02 Dec 22:38
· 31 commits to main since this release

This release is aimed at controllable entropy and support for running Jepsen inside Antithesis: a deterministic simulation testing environment. A new supporting library, jepsen.generator, provides the current generator system along with jepsen.random: a new namespace for pluggable random value generation. Jepsen uses these RNGs throughout, which makes it possible to run a test with a deterministic seed, or to source entropy from an external system, like Antithesis. The jepsen.antithesis library provides additional support for assertions, randomness, and lifecycle operations, plus wrappers for clients and checkers.

Also, this release introduces a new kind of visualization: op color plots, which show operations over time with different user-defined colors. This is particularly helpful for getting a feeling for "when did we lose data?" or "did only read-only queries succeed during a partition?"

New Features

  • nemesis.file now supports a new :f :truncate-file operation`
  • generator is now its own library
  • random: a new namespace for controllable, optionally deterministic random values. All Jepsen random calls now go through this library.
  • jepsen.antithesis: a new supporting library for running tests inside the Antithesis testing environment
  • checker/op-color-plot: draw plots of operations over time, with different kinds of operations in different colors

Minor Improvements

  • control.util/ls now supports :recursive? and :types options, which makes it easier to (e.g.) pick a random data file for a database
  • nemesis.membership: document an example of how to provide :perf and :final-generator in packages
  • control.net/ip: now uses the control node's DNS, then falls back to SSH. This makes ip usable when we have no SSH access.
  • checker: all reify instances are now defrecords. This makes them print nicer, and allows doing some interesting tree-walking and rewriting of checkers.

Dependency Updates

  • Clojure 1.12.3
  • tools.cli 1.2.245
  • elle 0.2.5
  • jepsen.generator 0.1.0
  • knossos 0.3.13
  • http-kit 2.8.1
  • ring 1.15.3
  • sshj 0.40.0
  • hiccup 2.0.0
  • data.codec 0.2.0
  • LazyFS 0.3.0