mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-05 14:02:00 +02: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>
118 lines
3.8 KiB
Markdown
118 lines
3.8 KiB
Markdown
# V2 Design
|
|
|
|
This directory currently contains both the active V2 design canon and a large
|
|
set of working notes, migration packs, and historical comparison material.
|
|
|
|
Use this README as the navigation layer. If a document is not listed under
|
|
`Core Canon`, treat it as supporting or historical context rather than the
|
|
current source of truth.
|
|
|
|
## Core Canon
|
|
|
|
These are the documents that define the current V2 model and should be read
|
|
first.
|
|
|
|
- `v2-protocol-truths.md` — the stable semantic rules
|
|
- `v2-sync-recovery-protocol.md` — sync, keepup, catchup, and rebuild protocol meaning
|
|
- `v2-rebuild-mvp-session-protocol.md` — rebuild session contract and data/control lanes
|
|
- `v2-automata-ownership-map.md` — assignment, session, and projection ownership
|
|
- `v2-protocol-claim-and-evidence.md` — claims and current proof posture
|
|
- `v2-validation-matrix.md` — `Rebuild Ready`, `Restore Ready`, and `V2 Ready` gates
|
|
- `v2-capability-map.md` — capability-to-proof-tier mapping
|
|
- `v2-proof-and-retest-pyramid.md` — proof layering and retest strategy
|
|
|
|
## Implementation Guides
|
|
|
|
These help maintainers understand how the current model maps into code.
|
|
|
|
- `v2-engine-maintainer-tutorial.md`
|
|
- `v2-protocol-aware-execution.md`
|
|
- `v2-session-protocol-shape.md`
|
|
- `v2-two-loop-protocol.md`
|
|
- `v2-assignment-translation-unification.md`
|
|
- `v2-reuse-replacement-boundary.md`
|
|
|
|
## Validation And Rollout
|
|
|
|
These define how the active design is validated, staged, or operationalized.
|
|
|
|
- `v2-validation-matrix.md`
|
|
- `v2-acceptance-criteria.md`
|
|
- `v2-product-completion-overview.md`
|
|
- `v2-first-launch-supported-matrix.md`
|
|
- `v2-legacy-runtime-exit-criteria.md`
|
|
- `v2-controlled-rollout-review.md`
|
|
- `v2-bounded-internal-pilot-pack.md`
|
|
- `v2-pilot-preflight-checklist.md`
|
|
- `v2-pilot-stop-conditions.md`
|
|
|
|
## Working Reference
|
|
|
|
These are still useful, but they are not the shortest route to the current
|
|
truth.
|
|
|
|
- `v2-open-questions.md`
|
|
- `v2-phase-development-plan.md`
|
|
- `v2-execution-muscles-inventory.md`
|
|
- `v2-scenario-sources-from-v1.md`
|
|
- `v2_scenarios.md`
|
|
- `v1-v15-v2-comparison.md`
|
|
- `v2-algorithm-overview.md`
|
|
- `v2-algorithm-overview.zh.md`
|
|
- `v2-detailed-algorithm.zh.md`
|
|
- `v2-semantic-methodology.zh.md`
|
|
- `v2-protocol-closure-map.zh.md`
|
|
|
|
## Migration And Historical Working Set
|
|
|
|
These files are mostly valuable for reconstruction of design history, migration
|
|
intent, or earlier prototype shapes. They should usually not be the first docs
|
|
opened during current development.
|
|
|
|
- `v2-first-migration-batch.md`
|
|
- `v2-first-migration-task-pack.md`
|
|
- `v2-second-migration-batch.md`
|
|
- `v2-second-migration-task-pack.md`
|
|
- `v2-third-migration-batch.md`
|
|
- `v2-third-migration-task-pack.md`
|
|
- `v2-phase14plus-semantic-framework.md`
|
|
- `v2-pure-runtime-rf1-bootstrap.md`
|
|
- `v2-volumev2-single-node-mvp.md`
|
|
- `v2-loop1-surface-draft.md`
|
|
- `v2-rf2-runtime-bounded-envelope.md`
|
|
- `v2-rf2-runtime-bounded-envelope-review.md`
|
|
- `v2-separation-port-layer-audit.md`
|
|
- `v2_mini_core_design.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`
|
|
- `v1-v15-v2-simulator-goals.md`
|
|
- `protocol-version-simulation.md`
|
|
|
|
## Process
|
|
|
|
- `protocol-development-process.md`
|
|
- `agent_dev_process.md`
|
|
|
|
## Cleanup Rule
|
|
|
|
When a document is superseded, prefer:
|
|
|
|
1. keeping one canonical file in `Core Canon`
|
|
2. leaving older reasoning in `Migration And Historical Working Set`
|
|
3. avoiding duplicate "read first" lists across many files
|
|
|
|
Future cleanup should physically move or archive files only after their inbound
|
|
references are reviewed.
|
|
|
|
## Execution Note
|
|
|
|
- active development tracking lives under `../.private/phase/`
|
|
- current phase contract and slice packages live there rather than in this directory
|
|
|
|
The original project-level copies under `learn/projects/sw-block/design/`
|
|
remain as shared references for now.
|