Repository navigation
Conversation
Signed-off-by: Debin <debin.jia@pingcap.com>
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
|
Signed-off-by: Debin <debin.jia@pingcap.com>
Signed-off-by: Debin <debin.jia@pingcap.com>
Signed-off-by: Debin <debin.jia@pingcap.com>
Signed-off-by: Debin <debin.jia@pingcap.com>
Signed-off-by: Debin <debin.jia@pingcap.com>
…gonly-recovery-protocol-v2 Signed-off-by: Debin <debin.jia@pingcap.com> # Conflicts: # pkg/metapb/metapb.pb.go # pkg/pdpb/pdpb.pb.go
Signed-off-by: Debin <debin.jia@pingcap.com>
Signed-off-by: Debin <debin.jia@pingcap.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Signed-off-by: Debin <debin.jia@pingcap.com>
|
[FORMAT CHECKER NOTIFICATION] Notice: To remove the 📖 For more info, you can check the "Contribute Code" section in the development guide. |
What problem does this PR solve?
CSE LogOnly witnesses may temporarily lead Raft to repair a Full voter. PD and Scheduling must distinguish that state from a data-serving leader and from an actually empty Region. Explicit protocol support must be negotiated before admitting witnesses; the old
is_witnessbit is not sufficient.When a Witness reaches critical Raft-disk pressure, accepting the next Append also requires a finite plan for the Full flush/checkpoint chain that will make the accepted data recoverable from DFS. A raw retained-byte hint cannot price future ChangeSets or bind retries to one immutable Full state.
What is changed and how does it work?
WitnessDrainPlancarried only after Full seals business input atapplied == commit == last. It binds one UUID to the Full flush-ledger incarnation/revision, writable generation/write sequence, and overflow-checked aggregate future ChangeSet/L0 bounds plus the largest single ChangeSet bound needed to prove RFEngine's per-Ready encoding limit.The drain plan is semantic evidence, not a physical IO ticket. The Witness companion must still combine it with its exact pending suffix and metadata projection and reserve every local WAL/rlog/MANIFEST copy before stepping the triggering Append. Production selector activation and the corresponding negotiated Store capability remain in the CSE draft.
The branch is synchronized with current kvproto
masterso the PD master draft keeps the upstream RU timeline schema while using the LogOnly protocol. Release-branch adoption should be handled as a separate backport.Companion drafts:
Validation
go test ./pkg/raft_serverpbpassed, including nested plan presence and round-trip identity.make clippypassed with zero warnings.Check List