Skip to content

Choose a tag to compare

@Barre Barre released this 09 Jul 10:11
Immutable release. Only release title and notes can be modified.

Segment reclaim & compaction correctness

  • 169d1d4: Compare the full FrameLoc in the compaction repoint CAS so a rewrite into the same source segment is not reverted to the stale frame.
  • b9d0dd8: Read the segment-reclaim segcount scan at the durable level so a segment is never deleted while its death is still an unflushed in-memory debit.
  • 7e9e4e2: Prove reclaim deletes from the durable view under the WAL-off production config.
  • eb4f9e7: Check the durable view too in the segment directory-verify so an unflushed overwrite cannot mask a durably referenced frame from the delete backstop.
  • 9a3827c: Keep compaction's gather compressed end to end (verify and AAD-rebind only), cap the round in stored bytes plus per-frame overhead, and fan the batch AEAD out on rayon in both directions.

HA / replication correctness

  • dcb1e6c: Key the cross-term tail clear on the tail's own epoch, not the heartbeat-advanced fence, so a restarted leader's stale tail cannot replay over the new term's fsync-acked writes.
  • cfae108: Validate takeover replay against a per-batch durable provenance stamp and gate boot on a latest-leader record so neither a stale tail nor an election from silence can regress acked state.
  • b3b6028: Raise the replication decode limit above tonic's 4 MiB default.

Robustness fixes

  • f2d5a6b: Forward mid-scan iterator errors into the Db::scan stream instead of swallowing them as a clean end-of-range.
  • 5b66e77: Reject a write or trim whose offset + length overflows u64 as EINVAL instead of wrapping into a request-task panic or a stray unreachable extent.

Refactors & housekeeping

  • 2bdf0e0: Fix clippy warning.
  • 0cbf4b3: Split extent.rs into an extent/ module: read, write, select, reclaim, compact.
  • f67f347: Split fs/mod.rs into boot, handle, and per-op ops/ files with their tests.

Full Changelog: v2.0.6...v2.0.7