mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-09-29 03:05:59 +00:00
Close all Rebuild Ready and Restore Ready matrix gaps. V2 Ready at 10/14 (2 partial, 2 missing — honest assessment). New tests (tester-written): - R1: syncAck-driven trigger via protocol engine decision - R3: stale replica restart beyond WAL → rebuild converges - R5: connection drop mid-base → cancel → fresh rebuild converges - R10: failover-rejoin with forced WAL recycling, strict rebuild assert - R11: divergent replica full overwrite convergence - R12: crash mid-rebuild → fresh session converges (not resume) - S2: corrupt WAL entry + corrupt base block both rejected - S5: snapshot-tail rebuild (base + WAL tail replay) - S7: crash between base install and tail replay - S8: snapshot under concurrent writes - V5: rebuild complete without DurableLSN blocks publish_healthy - V9: mixed replica health aggregate projection - V14: negative fail-closed matrix (epoch, kind, stale) Bug fix: StartRebuildSession now clears stale dirty map + resets WAL + updates checkpoint AFTER safety check but BEFORE session.Start(). Fixes stale extent data shadowing rebuild base blocks on reopened replicas. Cleanup: remove 14 obsolete design docs (migration batches, old WAL-v2 specs, simulator goals) — all superseded by current protocol docs. 34 component tests + 8 protocol engine tests + server tests all pass. 1GB CRC validation passes in 19s. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
sw-block
Private WAL V2 and standalone block-service workspace.
Purpose:
- keep WAL V2 design/prototype work isolated from WAL V1 production code in
weed/storage/blockvol - allow private design notes and experiments to evolve without polluting V1 delivery paths
- keep the future standalone
sw-blockproduct structure clean enough to split into a separate repo later if needed
Suggested layout:
design/: shared V2 design docsprototype/: code prototypes and experiments.private/: private notes, phase development, roadmap, and non-public working material
Repository direction:
- current state:
sw-block/is an isolated workspace insideseaweedfs - likely future state:
sw-blockbecomes a standalone sibling repo/product - design and prototype structure should therefore stay product-oriented and not depend on SeaweedFS-specific paths