ec84fbc7258fcaeb5279e34b801c3715b701931c
commit_txn issued an unconditional fsync per COMMIT, so N concurrent writers serialized behind N disk syncs (p99 hit the 3s socket timeout under 8 writers). Add Wal::sync_upto: committers queue on an fsync_gate, the first one flushes the whole accumulated buffer, and waiters that find committed_seq past their target return with zero I/O. N commits now cost ~1 fsync with the same durability guarantee. Also fix a durability over-report: flush_pending stamped committed_seq from the LIVE seq counter, so sequences taken by appenders that had not yet buffered their bytes were reported durable. Track max_seq alongside the pending buffer and advance committed_seq only to what was written. Wire --wal-fsync-ms / --checkpoint-ms in cube-server (previously hardcoded to defaults, so the documented knob did nothing). Both regressions are mutation-verified: each test fails when its bug is reintroduced.
Description
No description provided
536 KiB
Languages
Rust
94.5%
Python
2.8%
Shell
2.7%