From 49bea55f73dcae4f3160fb2068d34624c12f2e22 Mon Sep 17 00:00:00 2001 From: Austin Barrington Date: Mon, 26 Oct 2026 21:58:22 +0000 Subject: [PATCH] HyperbyteDB 0.9.4-beta Version bump to 0.9.4-beta, with release notes (docs/user-guide/release-notes-0.9.4-beta.md): the WAL truncation fix (#130). --- Cargo.lock | 6 ++-- docs/user-guide/operator/cluster.md | 4 +-- docs/user-guide/release-notes-0.9.4-beta.md | 34 +++++++++++++++++++++ hyperbytedb-cli/Cargo.toml | 2 +- hyperbytedb-proxy/Cargo.toml | 2 +- hyperbytedb/Cargo.toml | 2 +- mkdocs.yml | 1 + 7 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 docs/user-guide/release-notes-0.9.4-beta.md diff --git a/Cargo.lock b/Cargo.lock index a68adb7..43c3b2e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1827,7 +1827,7 @@ dependencies = [ [[package]] name = "hyperbytedb" -version = "0.9.3-beta" +version = "0.9.4-beta" dependencies = [ "anyhow", "argon2", @@ -1887,7 +1887,7 @@ dependencies = [ [[package]] name = "hyperbytedb-cli" -version = "0.9.3-beta" +version = "0.9.4-beta" dependencies = [ "anyhow", "axum", @@ -1921,7 +1921,7 @@ dependencies = [ [[package]] name = "hyperbytedb-proxy" -version = "0.9.3-beta" +version = "0.9.4-beta" dependencies = [ "anyhow", "axum", diff --git a/docs/user-guide/operator/cluster.md b/docs/user-guide/operator/cluster.md index 9568b10..9c92c3b 100644 --- a/docs/user-guide/operator/cluster.md +++ b/docs/user-guide/operator/cluster.md @@ -38,7 +38,7 @@ metadata: spec: replicas: 5 image: hyperbytedb:latest - version: "0.9.3-beta" + version: "0.9.4-beta" server: port: 8086 requestTimeoutSecs: 60 @@ -132,7 +132,7 @@ metadata: spec: replicas: 3 image: hyperbytedb:latest - version: "0.9.3-beta" + version: "0.9.4-beta" server: port: 8086 tls: diff --git a/docs/user-guide/release-notes-0.9.4-beta.md b/docs/user-guide/release-notes-0.9.4-beta.md new file mode 100644 index 0000000..fc55e37 --- /dev/null +++ b/docs/user-guide/release-notes-0.9.4-beta.md @@ -0,0 +1,34 @@ +# HyperbyteDB 0.9.4-beta + +One fix, for nodes with little write traffic: they could need many times +their usual memory to restart, and fail to start at all. Upgrade any node +that takes few writes; operator v0.3.3 runs 0.9.4-beta. + +## Fixed + +- **A quiet node could not restart after a few days of uptime.** Each flush + removed the flushed entries from the WAL with a range delete. On a busy + node those are cleared within minutes; on a quiet one they piled up in + memory for as long as the node ran, and the next start had to replay all + of them, at a cost that grows with the square of their number. On n3 the + shared tenant pool, after 5 days at about one point a second, needed + 11 GiB and 88 s to start, and was OOM-killed at its 4 GiB limit for + 19 hours. Truncation now removes only the new entries, with point deletes + for a few, and the rest are flushed to disk before they pile up. + Reopening a WAL after 30,000 flushes now takes 0.3 s and 1 MiB (it took + 10 s and 1.8 GB after 5,000). + +## Upgrading + +- Upgrade nodes one at a time, as usual. +- A node's first start on 0.9.4 still replays the range deletes it already + holds, as before. The cost grows with the square of how long a quiet + node has been up since its last start: n3's shared pool, flushing about + once a minute, needed 11 GiB after 5 days. If a quiet node has been up + for days, give it more memory for the upgrade, or restart it on its + current version first: a start writes the replayed deletes to disk, so + the next start, on 0.9.4, has nothing to replay. + +## Known limits + +Those of [0.9.3-beta](release-notes-0.9.3-beta.md#known-limits). diff --git a/hyperbytedb-cli/Cargo.toml b/hyperbytedb-cli/Cargo.toml index dda1fee..32dbbec 100644 --- a/hyperbytedb-cli/Cargo.toml +++ b/hyperbytedb-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hyperbytedb-cli" -version = "0.9.3-beta" +version = "0.9.4-beta" edition = "2024" description = "Interactive CLI client for HyperbyteDB — InfluxDB v1-compatible REPL, query, write, and admin" license = "Apache-2.0" diff --git a/hyperbytedb-proxy/Cargo.toml b/hyperbytedb-proxy/Cargo.toml index 13b70a2..97b1c6f 100644 --- a/hyperbytedb-proxy/Cargo.toml +++ b/hyperbytedb-proxy/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hyperbytedb-proxy" -version = "0.9.3-beta" +version = "0.9.4-beta" edition = "2024" description = "Health-aware HTTP reverse proxy for hyperbytedb. Provides connection draining, request hold-and-retry across rolling restarts, and per-backend health gating" license = "Apache-2.0" diff --git a/hyperbytedb/Cargo.toml b/hyperbytedb/Cargo.toml index 5293998..670efc5 100644 --- a/hyperbytedb/Cargo.toml +++ b/hyperbytedb/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hyperbytedb" -version = "0.9.3-beta" +version = "0.9.4-beta" edition = "2024" [dependencies] diff --git a/mkdocs.yml b/mkdocs.yml index 7bca605..4628a41 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -106,6 +106,7 @@ nav: - Troubleshooting: user-guide/troubleshooting.md - API & TimeseriesQL Reference: user-guide/reference.md - Release notes: + - 0.9.4-beta: user-guide/release-notes-0.9.4-beta.md - 0.9.3-beta: user-guide/release-notes-0.9.3-beta.md - 0.9.2-beta: user-guide/release-notes-0.9.2-beta.md - 0.9.1-beta: user-guide/release-notes-0.9.1-beta.md