Skip to content

v0.3.3

Compare
Choose a tag to compare
@aphyr aphyr released this 18 Aug 19:25
· 109 commits to main since this release

This release updates Jepsen to run with Debian Bookworm. It also includes performance improvements aimed at testing large histories. Jepsen can run and check histories of up to a billion operations now.

Significant API Changes

  • During test setup, (:generator test) is now wrapped in a new Forgettable reference type. You can deref this if you want access to the generator for some reason, but be aware that retaining the head of the generator often causes linear memory consumption during the test.
  • After the test starts generating operations, attempting to deref (:generator test) will throw.
  • core/run-case! and generator.interpreter/run! now return tests, rather than just histories.

Performance Improvements

  • Jepsen no longer retains the head of the generator. This dramatically improves memory consumption on long-running tests: running tests of a billion operations in a 512 MB heap is entirely reasonable.
  • Elle 0.1.7 comes with significant speed and memory improvements to the G1A, G1b, and internal checkers for list-append and rw-register.
  • Jepsen.history is much faster to execute folds on large (e.g. 100+ million op) histories. We converted a quadratic-time loop to linear.

Bugfixes

  • control.net/ip filters out loopback interfaces. Bookworm started returning 127.x.x.x interfaces from getent ahosts on some platforms.

Minor Changes

  • os.debian now refers to the new netcat package name.
  • nemesis.time allows ntpdate to fail during setup/teardown (which now happens on Bookworm).
  • nemesis.time no longer tries to use ntpdate -p, which is deprecated in Bookworm
  • tools.cli 1.0.219
  • elle 0.1.7
  • jepsen.history 0.1.1
  • http-kit 2.7.0

Full Changelog: v0.3.2...v0.3.3