0.17.4
Supported upgrade versions
Oldest supported client version: 0.16.4
Oldest upgradable replica version: 0.17.0
Server
- Binary: Download the zip for your OS and architecture from this page and unzip.
- Docker:
docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.4 - Docker (debug image):
docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.4-debug
Clients
NOTE: Because of package manager caching, it may take a few
minutes after the release for this version to appear in the package
manager.
You cannot run a newer client against an older cluster: clients are only compatible
with replicas from their own release or newer, subject to the newer release's
Oldest supported client version.
- .NET:
dotnet add package tigerbeetle --version 0.17.4 - Go:
go mod edit -require github.com/tigerbeetle/[email protected] - Java: Update the version of
com.tigerbeetle.tigerbeetle-javainpom.xml
to0.17.4. - Node.js:
npm install --save-exact [email protected] - Python:
pip install tigerbeetle==0.17.4
Changelog
As of TigerBeetle 0.17.4, the minimum required Linux kernel version is 5.11.
Safety And Performance
-
Refactor and simplify the Linux IO event loop, by directly embedding a timeout when calling
io_uring_enter, makingnext_ticka top level function (instead of executing all callbacks
back to back) and reentering the kernel after each callback.Combined, these changes give a ~8% improvement on the standard benchmark, improve tail latencies
in certain edge cases, as well as prevent tick starvation under heavy load or slow disks. -
Fix a bug in reformat caused by invoking
IO.runfrom withinIO.run_for_ns. -
Track the object caches as metrics, to help with sizing (eg,
--cache-accounts). -
Fix file permissions to no longer ask for world readable/writable files when creating them.
Normally, this does get prevented by the defaultumask.
Internals
-
Add warnings when the event loop is slow.
-
Cache the Zig download for test workflows, add the flake count to Devhub and
miscellaneous CI fixes.
TigerTracks 🎧
