Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
6cac58f
fix(disk-offload): block instead of dropping spill completions (data …
tindangtts Jun 4, 2026
deae60d
fix(disk-offload): salvage inline-batch spill failures per-entry, not…
tindangtts Jun 4, 2026
cf90800
fix(disk-offload): preserve spill context across tokio connection mig…
tindangtts Jun 4, 2026
4828b3d
fix(embedded): recover cold tier under appendonly=no + disable per-sh…
tindangtts Jun 4, 2026
fa9afe9
fix(persistence): clear rewrite flag when per-shard fan-out fails par…
tindangtts Jun 4, 2026
c919ff5
fix(persistence): roll per-shard rewrite writers back to committed ge…
tindangtts Jun 4, 2026
73d9514
fix(persistence): ack drained AppendSync only after the boundary fsync
tindangtts Jun 4, 2026
14c572b
refactor(persistence): split aof_manifest.rs into submodules under 15…
tindangtts Jun 4, 2026
566869d
chore(storage): correct stale async-spill doc, drop dead remove-first…
tindangtts Jun 4, 2026
798ce09
fix(shard): gate migrated-connection spawn fns behind cfg(unix)
tindangtts Jun 4, 2026
1a10aab
test(storage): lock fail-safe send-before-remove async-spill eviction
tindangtts Jun 4, 2026
5f5ecb3
refactor(persistence): split aof.rs into submodules under 1500-line cap
tindangtts Jun 4, 2026
edffce3
test(vector): fix VECTOR_INDEXES counter race via RwLock test isolation
tindangtts Jun 4, 2026
839ba8c
docs(changelog): add PR #144 durability + decomposition + test-isolat…
tindangtts Jun 4, 2026
e41f065
test(vector): use parking_lot::RwLock for METRICS_LOCK (no poison cas…
tindangtts Jun 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,34 @@ The v0.2 enterprise beachhead. Built additively on per-shard WAL v3 + the
dual-root manifest; no changes to the KV hot path, MVCC, page format, or
transaction layer.

### Fixed — CodeRabbit PR #136 durability follow-ups + decomposition + test isolation (PR #144)

Closes the 8 CodeRabbit findings left open after PR #136, plus two PR #144-review
Majors, oversized-file decomposition, and a parallel-test flake. No production
hot-path behaviour change.

- **Disk-offload spill (data-loss fixes):** block instead of dropping spill
completions; salvage inline-batch spill failures per-entry rather than
wholesale; preserve spill context across tokio connection migration; recover
the cold tier under `appendonly=no`.
- **Per-shard AOF rewrite robustness:** clear the rewrite flag when fan-out
fails partway; roll per-shard rewrite writers back to the committed generation
on abort (barrier-before-resume + panic-safe `ShardDoneGuard`); ack drained
`AppendSync` only after the boundary fsync (issue #140 ordering).
- **Async-spill eviction:** corrected a stale doc comment, removed the dead
remove-first eviction path, and added a regression test locking the fail-safe
send-before-remove ordering (a full spill channel keeps the victim resident —
no data loss).
- **Platform hygiene:** gate the migrated-connection spawn fns behind
`cfg(all(..., unix))` to match their `RawFd` usage.
- **File decomposition (1500-line cap):** split `aof_manifest.rs` (3058 →
mod/shard_replay/shard_rewrite) and `aof.rs` (4379 → mod/pool/writer_task/
rewrite); pure code relocation, verified line-exact on both runtimes.
- **Test isolation:** fixed the `VECTOR_INDEXES` counter flake — the process-
global metrics counter is now guarded by an `RwLock` (delta-reader tests take
`write()`, mutator tests take `read()`), making the index-count delta
assertions deterministic under the parallel test harness.

### Persistence — Per-shard AOF migration complete (PR #129)

Closes the P0 multi-shard AOF data-loss bug (~50% loss on SIGKILL with
Expand Down
Loading