Files
seaweedfs/sw-block/design/README.md
T
pingqiuandClaude Opus 4.6 46ef79ce35 fix: stable ServerID in assignments, fail-closed on missing identity, wire into ProcessAssignments
Finding 1: Identity no longer address-derived
- ReplicaAddr.ServerID field added (stable server identity from registry)
- BlockVolumeAssignment.ReplicaServerID field added (scalar RF=2 path)
- ControlBridge uses ServerID, NOT address, for ReplicaID
- Missing ServerID → replica skipped (fail closed), logged

Finding 2: Wired into real ProcessAssignments
- BlockService.v2Bridge field initialized in StartBlockService
- ProcessAssignments converts each assignment via v2Bridge.ConvertAssignment
  BEFORE existing V1 processing (parallel, not replacing yet)
- Logged at glog V(1)

Finding 3: Fail-closed on missing identity
- Empty ServerID in ReplicaAddrs → replica skipped with log
- Empty ReplicaServerID in scalar path → no replica created
- Test: MissingServerID_FailsClosed verifies both paths

7 tests: StableServerID, AddressChange_IdentityPreserved,
MultiReplica_StableServerIDs, MissingServerID_FailsClosed,
EpochFencing_IntegratedPath, RebuildAssignment, ReplicaAssignment

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 10:46:17 -07:00

43 lines
1.3 KiB
Markdown

# V2 Design
Current WAL V2 design set:
- `v2-algorithm-overview.md`
- `v2-algorithm-overview.zh.md`
- `v2-detailed-algorithm.zh.md`
- `wal-replication-v2.md`
- `wal-replication-v2-state-machine.md`
- `wal-replication-v2-orchestrator.md`
- `wal-v2-tiny-prototype.md`
- `wal-v1-to-v2-mapping.md`
- `v2-dist-fsm.md`
- `v2_scenarios.md`
- `v1-v15-v2-comparison.md`
- `v2-scenario-sources-from-v1.md`
- `protocol-development-process.md`
- `v2-acceptance-criteria.md`
- `v2-open-questions.md`
- `v2-first-slice-session-ownership.md`
- `v2-prototype-roadmap-and-gates.md`
- `v2-engine-readiness-review.md`
- `v2-engine-slicing-plan.md`
- `v2-protocol-truths.md`
- `v2-production-roadmap.md`
- `phase-07-service-slice-plan.md`
- `agent_dev_process.md`
These documents are the working design home for the V2 line.
The original project-level copies under `learn/projects/sw-block/design/` remain as shared references for now.
Execution note:
- active development tracking lives under `../.private/phase/`
- key completed/current phase docs include:
- `../.private/phase/phase-01.md`
- `../.private/phase/phase-02.md`
- `../.private/phase/phase-03.md`
- `../.private/phase/phase-04.md`
- `../.private/phase/phase-4.5.md`
- `../.private/phase/phase-05.md`
- `../.private/phase/phase-06.md`
- `../.private/phase/phase-07.md`