Files
seaweedfs/sw-block/prototype
pingqiuandClaude Opus 4.6 5b66a85f92 fix: wire rebuild FSM into sender, enforce frozen target, fix entry counting
Rebuild execution path:
- newRecoverySession auto-initializes RebuildState for SessionRebuild
- Sender rebuild APIs: SelectRebuildSource, BeginRebuildTransfer,
  RecordRebuildTransferProgress, BeginRebuildTailReplay,
  RecordRebuildTailProgress, CompleteRebuild
- All rebuild APIs are sender-authority-gated by sessionID
- E2E rebuild test now drives through rebuild FSM, not catch-up APIs

Bounded CatchUp enforcement:
- BeginCatchUp freezes TargetLSNAtStart from session.TargetLSN
- RecordCatchUpProgress rejects progress beyond frozen target
- Entry counting uses LSN delta (recoveredTo - previous), not call count
- Merged RecordCatchUpProgressAt into RecordCatchUpProgress (tick param)

5 new tests: target-frozen enforcement, sender-level rebuild via
rebuild APIs, reject non-rebuild, reject stale ID on rebuild.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 15:16:56 -07:00
..

V2 Prototype

Experimental WAL V2 prototype code lives here.

Current prototype:

  • fsmv2/: pure in-memory replication FSM prototype
  • volumefsm/: volume-level orchestrator prototype above fsmv2
  • distsim/: early distributed/data-correctness simulator with synthetic 4K block values

Rules:

  • do not wire this directly into WAL V1 production code
  • keep interfaces and tests focused on architecture learning
  • promote pieces into production only after V2 design stabilizes

Windows test workflow

Because normal go test may be blocked by Windows Defender when it executes temporary test binaries from %TEMP%, use:

powershell -ExecutionPolicy Bypass -File .\sw-block\prototype\run-tests.ps1

This builds test binaries into the workspace and runs them directly.