Skip to content

Releases: tigerbeetle/tigerbeetle

0.15.3: Merge pull request #1760 from tigerbeetle/cb22/release-2024-03-19

19 Mar 09:51
73bbc1a
Compare
Choose a tag to compare

0.15.3

NOTE: You must run the same version of server and client. We do
not yet follow semantic versioning where all patch releases are
interchangeable.

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.15.3
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.15.3-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.

  • .NET: dotnet add package tigerbeetle --version 0.15.3
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.15.3
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml to 0.15.3.
  • Node.js: npm install tigerbeetle-node@0.15.3

Changelog

  • Bump version to 0.15.x
  • Starting with 0.15.x, TigerBeetle is ready for production use, preserves durability and
    provides a forward upgrade path through storage stability.

Safety And Performance

  • #1755

    Set TigerBeetle's block size to 512KB.

    Previously, we used to have a block size of 1MB to help with approximate pacing. Now that pacing
    can be tuned independently of block size, reduce this value (but not too much - make the roads
    wider than you think) to help with read amplification on queries.

TigerTracks 🎧

0.15.2: Merge pull request #1757 from tigerbeetle/matklad/shellenv

19 Mar 00:54
e4f9df6
Compare
Choose a tag to compare

0.15.2

Automated build. Do not use in production.

NOTE: You must run the same version of server and client. We do
not yet follow semantic versioning where all patch releases are
interchangeable.

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.15.2
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.15.2-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.

  • .NET: dotnet add package tigerbeetle --version 0.15.2
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.15.2
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml to 0.15.2.
  • Node.js: npm install tigerbeetle-node@0.15.2

Changelog

Safety And Performance

  • #1660

    Implement compaction pacing: traditionally LSM databases run compaction on a background thread.
    In contrast compaction in tigerbeetle is deterministically interleaved with normal execution
    process, to get predictable latencies and to guarantee that ingress can never outrun compaction.

    In this PR, this "deterministic scheduling" is greatly improved, slicing compaction work into
    smaller bites which are more evenly distributed across a bar of batched requests.

  • #1722

    Include information about tigerbeetle version into the VSR protocol and the data file.

  • #1732,
    #1743,
    #1742,
    #1720,
    #1719,
    #1705,
    #1708,
    #1707,
    #1723,
    #1706,
    #1700,
    #1696,
    #1686.

    Many availability issues found by the simulator fixed!

  • #1734

    Fix a buffer leak when get_account_balances is called on an invalid account.

Features

  • #1671,
    #1713,
    #1709,
    #1688,
    #1691,
    #1690.

    Many improvements to the documentation!

  • #1733

    Rename get_account_history to get_account_balances.

  • #1657

    Automatically expire pending transfers.

  • #1682

    Implement in-place upgrades, so that the version of tigerbeetle binary can be updated without
    recreating the data file from scratch.

  • #1674

    Consistently use MiB rather than MB in the CLI interface.

  • #1678

    Mark --standby and benchmark CLI arguments as experimental.

Internals

  • #1726

    Unify PostedGroove and the index pending_status.

  • #1681

    Include an entire header into checkpoint state to ease recovery after state sync.

TigerTracks 🎧

0.15.0: Merge pull request #1751 from tigerbeetle/release-2024-03-18

18 Mar 22:31
7357329
Compare
Choose a tag to compare

0.15.0

Automated build. Do not use in production.

NOTE: You must run the same version of server and client. We do
not yet follow semantic versioning where all patch releases are
interchangeable.

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.15.0
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.15.0-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.

  • .NET: dotnet add package tigerbeetle --version 0.15.0
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.15.0
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml to 0.15.0.
  • Node.js: npm install tigerbeetle-node@0.15.0

Changelog

Safety And Performance

  • #1660

    Implement compaction pacing: traditionally LSM databases run compaction on a background thread.
    In contrast compaction in tigerbeetle is deterministically interleaved with normal execution
    process, to get predictable latencies and to guarantee that ingress can never outrun compaction.

    In this PR, this "deterministic scheduling" is greatly improved, slicing compaction work into
    smaller bites which are more evenly distributed across a bar of batched requests.

  • #1722

    Include information about tigerbeetle version into the VSR protocol and the data file.

  • #1732,
    #1743,
    #1742,
    #1720,
    #1719,
    #1705,
    #1708,
    #1707,
    #1723,
    #1706,
    #1700,
    #1696,
    #1686.

    Many availability issues found by the simulator fixed!

  • #1734

    Fix a buffer leak when get_account_balances is called on an invalid account.

Features

  • #1671,
    #1713,
    #1709,
    #1688,
    #1691,
    #1690.

    Many improvements to the documentation!

  • #1733

    Rename get_account_history to get_account_balances.

  • #1657

    Automatically expire pending transfers.

  • #1682

    Implement in-place upgrades, so that the version of tigerbeetle binary can be updated without
    recreating the data file from scratch.

  • #1674

    Consistently use MiB rather than MB in the CLI interface.

  • #1678

    Mark --standby and benchmark CLI arguments as experimental.

Internals

  • #1726

    Unify PostedGroove and the index pending_status.

  • #1681

    Include an entire header into checkpoint state to ease recovery after state sync.

TigerTracks 🎧

0.14.184: Merge pull request #1677 from tigerbeetle/release-2024-03-11

11 Mar 22:21
1e0daf1
Compare
Choose a tag to compare

0.14.184

Automated build. Do not use in production.

NOTE: You must run the same version of server and client. We do
not yet follow semantic versioning where all patch releases are
interchangeable.

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.184
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.184-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.

  • .NET: dotnet add package tigerbeetle --version 0.14.184
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.14.184
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml to 0.14.184.
  • Node.js: npm install tigerbeetle-node@0.14.184

Changelog

Safety And Performance

  • #1663

    Fetching account history and transfers now has unit tests, helping detect and fix a reported bug
    with posting and voiding transfers.

Internals

Features

TigerTracks 🎧

0.14.183: Merge pull request #1645 from tigerbeetle/release-2024-03-04

04 Mar 21:10
6884113
Compare
Choose a tag to compare

0.14.183

Automated build. Do not use in production.

NOTE: You must run the same version of server and client. We do
not yet follow semantic versioning where all patch releases are
interchangeable.

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.183
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.183-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.

  • .NET: dotnet add package tigerbeetle --version 0.14.183
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.14.183
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml to 0.14.183.
  • Node.js: npm install tigerbeetle-node@0.14.183

Changelog

Safety And Performance

  • #1584
    Lower our memory usage by removing a redundant stash and not requiring a non-zero object cache
    size for Grooves.

    The object cache is designed to help things like Account lookups, where the positive case can
    skip all the prefetch machinery, but it doesn't make as much sense for other Grooves.

  • #1581
    #1611

    Hook nyrkiö up to our CI! You can find our dashboard
    here
    in addition to our devhub.

  • #1635
    #1634
    #1623
    #1619
    #1609
    #1608
    #1595

    Lots of small VSR changes, including a VOPR crash fix.

  • #1598

    Fix a VOPR failure where state sync would cause a break in the hash chain.

Internals

TigerTracks 🎧

0.14.181: Merge pull request #1594 from tigerbeetle/batiati-release-2024-02-26

26 Feb 11:46
998301b
Compare
Choose a tag to compare

0.14.181

Automated build. Do not use in production.

NOTE: You must run the same version of server and client. We do
not yet follow semantic versioning where all patch releases are
interchangeable.

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.181
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.181-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.

  • .NET: dotnet add package tigerbeetle --version 0.14.181
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.14.181
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml to 0.14.181.
  • Node.js: npm install tigerbeetle-node@0.14.181

Changelog

Safety And Performance

  • #1591
    #1589
    #1579
    #1576

    Rework the log repair logic to never repair beyond a "confirmed" checkpoint, fixing a
    liveness issue where it was impossible
    for the primary to repair its entire log, even with a quorum of replicas at a recent checkpoint.

  • #1572

    Some Java unit tests created native client instances without the proper deinitialization,
    causing an OutOfMemoryError during CI.

  • #1569
    #1570

    Fix Vopr's false alarms.

Internals

  • #1585

    Document how assertions should be used, especially those with complexity O(n) under
    the constants.verify conditional.

  • #1580

    Harmonize and automate the logging pattern by using the @src built-in to retrieve the
    function name.

  • #1568

    Include the benchmark smoke as part of the zig build test command rather than a special case
    during CI.

  • #1574

    Remove unused code coverage metrics from the CI.

  • #1575
    #1573
    #1582

    Re-enable Windows CI 🎉.

TigerTracks 🎧

0.14.180: Merge pull request #1571 from tigerbeetle/release-2024-02-19

19 Feb 16:24
a2366a6
Compare
Choose a tag to compare

0.14.180

Automated build. Do not use in production.

NOTE: You must run the same version of server and client. We do
not yet follow semantic versioning where all patch releases are
interchangeable.

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.180
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.180-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.

  • .NET: dotnet add package tigerbeetle --version 0.14.180
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.14.180
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml to 0.14.180.
  • Node.js: npm install tigerbeetle-node@0.14.180

Changelog

Safety And Performance

  • #1533

    DVCs implicitly nack missing prepares from old log-views.

    (This partially addresses a liveness issue in the view change.)

  • #1552

    When a replica joins a view by receiving an SV message, some of the SV's headers may be too far
    ahead to insert into the journal. (That is, they are beyond the replica's checkpoint trigger.)

    During a view change, those headers are now eligible to be DVC headers.

    (This partially addresses a liveness issue in the view change.)

  • #1560

    Fixes a bug in the C client that wasn't handling error.TooManyOutstanding correctly.

Internals

  • #1482

    Bring back Windows tests for .Net client in CI.

  • #1540

    Add script to scaffold changelog updates.

  • #1542,
    #1553,
    #1559,
    #1561

    Improve CI/test error reporting.

  • #1551

    Draw devhub graph as line graph.

  • #1554

    Simplify command to run a single test.

  • #1555

    Add client batching integration tests.

  • #1557

    Format default values into the CLI help message.

  • #1558

    Track commit timestamp to enable retrospective benchmarking in the devhub.

  • #1562,
    #1563

    Improve CI/test performance.

  • #1567

    Guarantee that the test runner correctly reports "zero tests run" when run with a filter that
    matches no tests.

TigerTracks 🎧

0.14.179: Merge pull request #1539 from tigerbeetle/release-2024-02-12

12 Feb 14:06
a89e709
Compare
Choose a tag to compare

0.14.179

Automated build. Do not use in production.

NOTE: You must run the same version of server and client. We do
not yet follow semantic versioning where all patch releases are
interchangeable.

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.179
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.179-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.

  • .NET: dotnet add package tigerbeetle --version 0.14.179
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.14.179
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml to 0.14.179.
  • Node.js: npm install tigerbeetle-node@0.14.179

Changelog

Safety And Performance

  • #1519

    Reduce checkpoint latency by checkpointing the grid concurrently with other trailers.

  • #1515

    Fix a logical race condition (which was caught by an assert) when reading and writing client
    replies concurrently.

  • #1522

    Double check that both checksum and request number match between a request and the corresponding
    reply.

  • #1520

    Optimize fields with zero value by not adding them to an index.

Features

  • #1526,
    #1531.

    Introduce get_account_history operation for querying the historical balances of a given account.

  • #1523

    Add helper function for generating approximately monotonic IDs to various language clients.

TigerTracks 🎧

0.14.178: Merge pull request #1516 from tigerbeetle/king/release-2024-02-05

05 Feb 21:40
3e0cd97
Compare
Choose a tag to compare

0.14.178

Automated build. Do not use in production.

NOTE: You must run the same version of server and client. We do
not yet follow semantic versioning where all patch releases are
interchangeable.

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.178
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.178-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.

  • .NET: dotnet add package tigerbeetle --version 0.14.178
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.14.178
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml to 0.14.178.
  • Node.js: npm install tigerbeetle-node@0.14.178

Changelog

Safety And Performance

  • #1489,
    #1496,
    #1501.

    Harden VSR against edge cases.

  • #1508,
    #1509.

    Allows VSR to perform checkpoint steps concurrently to reduce latency spikes.

  • #1505

    Removed unused indexes on account balances for a nice bump in throughput and lower memory usage.

  • #1512

    Only zero-out the parts necessary for correctness of fresh storage buffers. "Defense in Depth"
    without sacrificing performance!

Features

  • #1491,
    #1503.

    TigerBeetle's dev workbench now also tracks
    memory usage (RSS), throughput, and latency benchmarks over time!

Internals

TigerTracks 🎧

0.14.177: Merge pull request #1488 from tigerbeetle/cb22/take-action

29 Jan 11:42
26d7b4d
Compare
Choose a tag to compare

0.14.177

Automated build. Do not use in production.

NOTE: You must run the same version of server and client. We do
not yet follow semantic versioning where all patch releases are
interchangeable.

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.177
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.14.177-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.

  • .NET: dotnet add package tigerbeetle --version 0.14.177
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.14.177
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml to 0.14.177.
  • Node.js: npm install tigerbeetle-node@0.14.177

Changelog

Safety And Performance

  • #1446

    Panic on checkpoint divergence. Previously, if a replica's state on disk diverged, we'd
    use state sync to bring it in line. Now, we don't allow any storage engine nondeterminism
    (mixed version clusters are forbidden) and panic if we encounter any.

  • #1476

    Fix a liveness issues when starting a view across checkpoints in an idle cluster.

  • #1460

    Stop an isolated replica from locking a standby out of a cluster.

Features

  • #1470

    Change get_account_transfers to use timestamp_min and timestamp_max to allow filtering by
    timestamp ranges.

  • #1463

    Allow setting --addresses=0 when starting TigerBeetle to enable a mode helpful for integration
    tests:

    • A free port will be picked automatically.
    • The port, and only the port, will be printed to stdout which will then be closed.
    • TigerBeetle will exit when its stdin is closed.
  • #1402

    TigerBeetle now has a dev workbench! Currently we
    track our build times and executable size over time.

  • #1461

    tigerbeetle client ... is now tigerbeetle repl ....

Internals

  • #1480

    Deprecate support and testing for Node 16, which is EOL.

  • #1477,
    #1469,
    #1475,
    #1457,
    #1452.

    Improve VOPR & VSR logging, docs, assertions and tests.

  • #1474

    Improve integration tests around Node and pending_transfer_expired - thanks to our friends at
    Rafiki for reporting!

TigerTracks 🎧