mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-09-20 13:30:46 +02:00
VS-side evidence handler (QueryBlockPromotionEvidence) reads live blockvol.Status() + V2 core projection at call time. Fail-closed: no core projection → ineligible with reason "missing_engine_projection". Engine CommittedLSN used unconditionally when core present (no WALHeadLSN overstatement). Eligibility owned by local V2 engine, not master. Master-side selection (selectDurabilityFirstCandidate): durability-first ordering by CommittedLSN, tie-break WALHeadLSN then HealthScore. All ineligible → fail-closed, no promotion. Pluggable querier (BlockPromotionEvidenceQuerier) for T3 wiring. Proto messages added to volume_server.proto. gRPC transport binding pending proto regen on M01 — this commit delivers evidence semantics and selection substrate, not full end-to-end RPC closure. Phase 20 doc updated with T2-T5 reviewer packs and cross-task guardrails. 13 tests: live facts, core projection mode, fail-closed no-core, 4 gated modes, missing volume, epoch mismatch, CommittedLSN ordering, WALHeadLSN tie-break, HealthScore tie-break, all-ineligible, mixed collection. 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