Tigerbeetle

Latest version: v0.16.33

Safety actively analyzes 722491 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 6

0.16.33

Released: 2025-03-24

Note that [2824](https://github.com/tigerbeetle/tigerbeetle/pull/2824) bumps the oldest supported
client version to 0.16.4, removing backward compatibility with various deprecated features. Please
make sure that all of your clients are running on at least 0.16.4 before upgrading to this release!

Safety And Performance

- [2835](https://github.com/tigerbeetle/tigerbeetle/pull/2835)

Add performance mode to the VOPR, which tracks the number and aggregate size of each kind of
message during a run.

Features

- [2824](https://github.com/tigerbeetle/tigerbeetle/pull/2824)

Bump the oldest supported client version to 0.16.4, removing backward compatibility with various
deprecated features.

Internals

- [2826](https://github.com/tigerbeetle/tigerbeetle/pull/2826)

Simplify the idiom around adding elements to lists with comptime known lengths.

- [2827](https://github.com/tigerbeetle/tigerbeetle/pull/2827)

Better styling for links and block quotes in the documentation.

- [2831](https://github.com/tigerbeetle/tigerbeetle/pull/2831)

Change debug multiversion builds to encapsulate two versions as opposed to five.

- [2832](https://github.com/tigerbeetle/tigerbeetle/pull/2832)

Improve CFO efficacy by retaining Zig build cache across fuzzing iterations.

- [2836](https://github.com/tigerbeetle/tigerbeetle/pull/2836)

Update TigerStyle to add a new rule about using long form arguments in scripts (--force over -f).

- [2834](https://github.com/tigerbeetle/tigerbeetle/pull/2834),
[2837](https://github.com/tigerbeetle/tigerbeetle/pull/2837),
[2839](https://github.com/tigerbeetle/tigerbeetle/pull/2839),
[2841](https://github.com/tigerbeetle/tigerbeetle/pull/2841),

Fix various VOPR false positives.

TigerTracks 🎧

- [On The Way Home](https://open.spotify.com/track/4Fz1WWr5o0OrlIcZxcyZtK?si=4e48d9e99383409a)

0.16.32

Released: 2025-03-17

Safety And Performance

- [2798](https://github.com/tigerbeetle/tigerbeetle/pull/2798),
[2815](https://github.com/tigerbeetle/tigerbeetle/pull/2815)

Vendor the PRNG, and tweak the API to be less wordy.

PRNG algorithms tend to change, often for reasons not applicable to TigerBeetle. We need neither
the fastest, nor the most secure PRNG, and it's better if we rotate our PRNG algorithm at our own
pace.

- [2813](https://github.com/tigerbeetle/tigerbeetle/pull/2813)

Fix a case where, if a busy cluster's pipeline is full, the prepare_timeout was never reset.

This improves performance of a local benchmark for a 6-replica cluster with one replica down and 4
clients almost ~4x.

Internals

- [2804](https://github.com/tigerbeetle/tigerbeetle/pull/2804),
[2806](https://github.com/tigerbeetle/tigerbeetle/pull/2806),
[2803](https://github.com/tigerbeetle/tigerbeetle/pull/2803)

Add syntax highlighting to docs code snippets (thanks nilskch!), fix Python example code (thanks
IvoCrnkovic!) and update our HACKING.md with current practices.

- [2819](https://github.com/tigerbeetle/tigerbeetle/pull/2819),
[2814](https://github.com/tigerbeetle/tigerbeetle/pull/2814),
[2812](https://github.com/tigerbeetle/tigerbeetle/pull/2812)

Prepare for the [Zig 0.14 upgrade](https://github.com/tigerbeetle/tigerbeetle/pull/2705) by
applying as many changes that still work on 0.13 as possible. This includes vendoring AEGIS, to
keep hash stability, as 0.14 changes the implementation.

TigerTracks 🎧

- [Get Ready](https://open.spotify.com/track/4tvOVmc2jorV20Z2hFDtDg?si=15eb0ed7536b4ab3)

0.16.31

Released: 2025-03-09

Safety And Performance

- [2790](https://github.com/tigerbeetle/tigerbeetle/pull/2790)

Use LIFO instead of FIFO for free blocks during compaction for better temporal locality.

- [2799](https://github.com/tigerbeetle/tigerbeetle/pull/2799)

Disallow converting negative big integers to `UInt128` in the Java and Go clients, as they
would be incorrectly interpreted as unsigned big integers when converted back.

- [2801](https://github.com/tigerbeetle/tigerbeetle/pull/2801)

Remove spurious `write_reply_next()` after read completes in `client_replies`,
as reads and writes can happen concurrently.

- [2783](https://github.com/tigerbeetle/tigerbeetle/pull/2783)

Assert that `cache_map.stash` is not using any element beyond its defined capacity.

Features

- [2725](https://github.com/tigerbeetle/tigerbeetle/pull/2725)

Various REPL fixes and improvements.

- [2773](https://github.com/tigerbeetle/tigerbeetle/pull/2773)

Add single-page mode to the documentation website.

Internals

- [2791](https://github.com/tigerbeetle/tigerbeetle/pull/2791),
[2792](https://github.com/tigerbeetle/tigerbeetle/pull/2792),
[2793](https://github.com/tigerbeetle/tigerbeetle/pull/2793),
[2794](https://github.com/tigerbeetle/tigerbeetle/pull/2794),
[2795](https://github.com/tigerbeetle/tigerbeetle/pull/2795),
[2796](https://github.com/tigerbeetle/tigerbeetle/pull/2796),
[2807](https://github.com/tigerbeetle/tigerbeetle/pull/2807)

Miscellaneous documentation typo fixes, clarifications, and references.

- [2788](https://github.com/tigerbeetle/tigerbeetle/pull/2788),
[2802](https://github.com/tigerbeetle/tigerbeetle/pull/2802)

Ban qualified `std.debug.assert` and `memcpy`.

- [2776](https://github.com/tigerbeetle/tigerbeetle/pull/2776),
[2800](https://github.com/tigerbeetle/tigerbeetle/pull/2800)

Fix code comment typos.

- [2595](https://github.com/tigerbeetle/tigerbeetle/pull/2595)

Add tracking of format time and startup time to the [devhub](https://devhub.tigerbeetle.com/).

TigerTracks 🎧

- [The Hardest Button To Button](https://www.youtube.com/watch?v=K4dx42YzQCE)

0.16.30

Released: 2025-03-03

Note: Before performing this upgrade, please make sure to check that no replicas are lagging and
state syncing.

You can ensure this by temporarily pausing load to the TigerBeetle cluster and waiting for all
replicas to catch up. If some replicas in your cluster were indeed lagging, you should see
`on_repair_sync_timeout: request sync; lagging behind cluster` in the logs, followed by
`sync: ops=`, which indicates the end of state sync. If you don't see the former in the logs, then
you are already safe to upgrade!

This is to work around an issue in the upgrade between 0.16.25 → 0.16.26, wherein a state syncing
replica goes into a crash loop when it upgrades to 0.16.26. If one of your replicas has already hit
this crash loop, please reach out to us on the Community Slack so we can help you safely revive it.


Safety And Performance

- [2774](https://github.com/tigerbeetle/tigerbeetle/pull/2774)

Fix TOCTOU bug in our hybrid set-associative cache and hash map structure, wherein a promotion
to the cache coupled with an eviction from the cache could lead to invalid pointer references.

- [2771](https://github.com/tigerbeetle/tigerbeetle/pull/2771)

Add logic to crash replica upon receiving unknown commands from clients and other replicas.

- [2766](https://github.com/tigerbeetle/tigerbeetle/pull/2766)

Fix upgrade bug wherein a replica does not detect a change in the binary if it is replaced during
its initialization in `Replica.open()`.

- [2761](https://github.com/tigerbeetle/tigerbeetle/pull/2761)

Alternate replication direction for even and odd ops to better detect breaks in the ring topology.

Internals

- [2770](https://github.com/tigerbeetle/tigerbeetle/pull/2770),
[2781](https://github.com/tigerbeetle/tigerbeetle/pull/2781),
[2779](https://github.com/tigerbeetle/tigerbeetle/pull/2779),
[2778](https://github.com/tigerbeetle/tigerbeetle/pull/2778),
[2769](https://github.com/tigerbeetle/tigerbeetle/pull/2769),

Add new docs content to `TigerBeetle Architecture`, fix miscellaneous typos and references.

- [2760](https://github.com/tigerbeetle/tigerbeetle/pull/2760)

Simplify idiom around a replica sending messages to itself.

- [2764](https://github.com/tigerbeetle/tigerbeetle/pull/2764)

Refactor MessageBus to remove platform-specific IO logic.

TigerTracks 🎧

- [For Crying Out Loud](https://open.spotify.com/track/4nsd2DbMYqRwkvIQ51r4cp?si=411872dc9c444535)

0.16.29

Released: 2025-02-24

Note: Before performing this upgrade, please make sure to check that no replicas are lagging and
state syncing.

You can ensure this by temporarily pausing load to the TigerBeetle cluster and waiting for all
replicas to catch up. If some replicas in your cluster were indeed lagging, you should see
`on_repair_sync_timeout: request sync; lagging behind cluster` in the logs, followed by
`sync: ops=`, which indicates the end of state sync. If you don't see the former in the logs, then
you are already safe to upgrade!

This is to work around an issue in the upgrade between 0.16.25 → 0.16.26, wherein a state syncing
replica goes into a crash loop when it upgrades to 0.16.26. If one of your replicas has already hit
this crash loop, please reach out to us on the Community Slack so we can help you safely revive it.


Safety And Performance

- [2763](https://github.com/tigerbeetle/tigerbeetle/pull/2763)

Explicitly ignore deprecated protocol messages.

- [2758](https://github.com/tigerbeetle/tigerbeetle/pull/2758)

Fix a crash when, during upgrade, replica's binary is changed the second time.

Features

- [2698](https://github.com/tigerbeetle/tigerbeetle/pull/2698)

Implement metrics, using statsd format.

- [2507](https://github.com/tigerbeetle/tigerbeetle/pull/2507)

Add new indexes to the account balances to enable CDC.

- [2521](https://github.com/tigerbeetle/tigerbeetle/pull/2521),
[2751](https://github.com/tigerbeetle/tigerbeetle/pull/2751),
[2756](https://github.com/tigerbeetle/tigerbeetle/pull/2756),
[2757](https://github.com/tigerbeetle/tigerbeetle/pull/2757),
[2754](https://github.com/tigerbeetle/tigerbeetle/pull/2754)

Restructure documentation.

- [2727](https://github.com/tigerbeetle/tigerbeetle/pull/2727)

Implement more standard shortcuts for REPL.

Internals

- [2742](https://github.com/tigerbeetle/tigerbeetle/pull/2742)

Refactor C client API to remove internal mutex.

- [2747](https://github.com/tigerbeetle/tigerbeetle/pull/2747)

Don't use deprecated NodeJS APIs in the samples.

- [2748](https://github.com/tigerbeetle/tigerbeetle/pull/2748),
[2744](https://github.com/tigerbeetle/tigerbeetle/pull/2744)

Improve documentation search.

- [2734](https://github.com/tigerbeetle/tigerbeetle/pull/2734)

Switch to vale for documentation spell checking.


TigerTracks 🎧

- [Зов Крови](https://open.spotify.com/track/6YS6ZOCL6KX9kDRQRzD9s0?si=46730a9a7a7842ab)

0.16.28

Released: 2025-02-17

Note: Before performing this upgrade, please make sure to check that no replicas are lagging and
state syncing.

You can ensure this by temporarily pausing load to the TigerBeetle cluster and waiting for all
replicas to catch up. If some replicas in your cluster were indeed lagging, you should see
`on_repair_sync_timeout: request sync; lagging behind cluster` in the logs, followed by
`sync: ops=`, which indicates the end of state sync. If you don't see the former in the logs, then
you are already safe to upgrade!

This is to work around an issue in the upgrade between 0.16.25 → 0.16.26, wherein a state syncing
replica goes into a crash loop when it upgrades to 0.16.26. If one of your replicas has already hit
this crash loop, please reach out to us on the Community Slack so we can help you safely revive it.

Safety And Performance

- [2677](https://github.com/tigerbeetle/tigerbeetle/pull/2677)

Test misdirected writes in the VOPR.

- [2711](https://github.com/tigerbeetle/tigerbeetle/pull/2711)

Fix a recovery correctness bug caused by a misdirected write in the WAL
(discovered by the VOPR in 2677).

- [2728](https://github.com/tigerbeetle/tigerbeetle/pull/2728)

Refactor the tb_client packet interface, hiding private members in an opaque field.
Add assertions to enforce expectations for each packet field.

- [2717](https://github.com/tigerbeetle/tigerbeetle/pull/2717)

Fix a Node client crash when it was closed with outstanding requests.

- [2720](https://github.com/tigerbeetle/tigerbeetle/pull/2720)

Flush loopback queue before queueing another prepare_ok.

- [2730](https://github.com/tigerbeetle/tigerbeetle/pull/2730)

Fuzzer weights are now configurable.

- [2702](https://github.com/tigerbeetle/tigerbeetle/pull/2702)

The REPL now uses `StaticAllocator` on init and deinit.

Features

- [2716](https://github.com/tigerbeetle/tigerbeetle/pull/2716)

`tigerbeetle inspect constants` now prints a napkin math estimate for the memory usage.

Internals

- [2719](https://github.com/tigerbeetle/tigerbeetle/pull/2719),
[2718](https://github.com/tigerbeetle/tigerbeetle/pull/2718),
[2736](https://github.com/tigerbeetle/tigerbeetle/pull/2736)

Update docs with new talks, an updated illustration, and a new Slack invite link.

- [2724](https://github.com/tigerbeetle/tigerbeetle/pull/2724)

Don't expose VSR module to dependents in build.zig.

TigerTracks 🎧

- [Formula 06](https://open.spotify.com/track/7rzRbj2WnmxcE5iQfGbhKN)

Page 1 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.