v0.3.3
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 newForgettable
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