Skip to content

v0.16.1

Choose a tag to compare

@github-actions github-actions released this 12 Mar 01:33
· 170 commits to main since this release
42be7c2

This patch release focuses on production stability, client resilience, and the foundation for shard splitting. It improves leadership-loss handling, follower recovery, Kubernetes health checks, and retry behavior for streaming client operations.

Compatibility

  • No breaking compatibility changes are expected.
  • Shard splitting APIs are introduced as groundwork for the split workflow.

Requirements

  • No data migration is required.
  • Source builds now use Go 1.26.

Public API Changes

  • Added admin SplitShard RPC and oxia admin split-shard command.
  • Added split lifecycle model with SplitPhase values: Init, Bootstrap, CatchUp, Cutover, Cleanup.
  • Added dedicated CodeNodeIsNotMember / ErrNodeIsNotMember handling so leaders can recover clean-data followers.
  • Client List and RangeScan operations now retry with leader hints and exponential backoff.

Metrics Changes

  • None.

Operational Changes

  • Coordinator leadership loss now returns typed errors and restarts cleanly instead of panicking on metadata version conflicts.
  • Follower recovery now resets stale cursors and sends snapshots when a restarted node reports NOT_MEMBER.
  • gRPC health servers start before leader election so Kubernetes probes can succeed on non-leader coordinator pods.
  • Coordinator GetInfo calls now run on state transitions instead of every health check.
  • Fixed data races and test flakes in follower cursor, shard balancing, sync client, and leader balancing paths.

Changes Since v0.16.0

  • admin: add shard split RPC, CLI, and split phase model (#911)
  • coordinator: handle metadata leadership loss without panic (#935)
  • replication: recover followers that restart with clean data (#929)
  • client: add retry support for List and RangeScan (#937, #938)
  • health: start coordinator health server before leader election (#930)
  • coordinator: call GetInfo only on state transitions (#933)
  • build: upgrade to Go 1.26 (#926)

Full Changelog: v0.16.0...v0.16.1