Files
seaweedfs/sw-block/prototype
pingqiuandClaude Opus 4.6 3f0048cbd9 feat: add bounded CatchUp budget and Rebuild mode state machine (Phase 4.5 P0)
Bounded CatchUp:
- CatchUpBudget: MaxDurationTicks, MaxEntries, ProgressDeadlineTicks
- BudgetCheck: runtime consumption tracker (StartTick, EntriesReplayed, LastProgressTick)
- Sender.CheckBudget: evaluates budget, escalates to NeedsRebuild on violation
- RecordCatchUpProgressAt: tracks progress tick for stall detection
- BeginCatchUp accepts optional startTick for budget tracking

Rebuild state machine:
- RebuildSource: snapshot_tail (preferred) vs full_base (fallback)
- RebuildPhase: init → source_select → transfer → tail_replay → completed|aborted
- SelectSource: chooses based on snapshot availability
- Phase ordering enforced, transfer regression rejected
- ReadyToComplete validates target reached

13 new tests: budget enforcement (duration, entries, stall, no-budget),
sender budget integration, rebuild lifecycle (snapshot+tail, full base,
abort, phase order, regression), E2E bounded catch-up → rebuild.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 14:33:06 -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.