forked from lei.chen/myxce
spec(ha-term-safety): add task 3.4 — retire term-0 repl_broadcast, drive live library send (closes bug-990)
This commit is contained in:
parent
fda15336d5
commit
87242aa8e9
1 changed files with 7 additions and 0 deletions
|
|
@ -84,6 +84,13 @@
|
|||
- _Requirements: 4.1, 4.5_
|
||||
- _Depends: 2.5, 3.2_
|
||||
|
||||
- [ ] 3.4 Retire the term-0 `repl_broadcast` live send and drive the library send loop on the live primary (the deferred live-send cutover)
|
||||
- Make the LIVE primary replicate via the library send (`raft_send_append_entries`/the library's per-peer send) so `on_send_append_entries` (task 2.3) fires on the real replication path, carrying the leader's term; retire/replace the term-0 `repl_broadcast` (`persist.c:747`) as the live replicator so standbys no longer receive term-0 entries. Standbys must intake every replicated entry through `raft_on_append_entries_request` (task 3.2 route) and persist `hdr.term = leader_term` (not 0); retire the legacy direct-apply branch (`ha_apply_wal_catchup_entry` gated `entry->term != 0`) as the live intake. Preserve persist-before-ACK + the commit barrier + 848/849/850 + the bug-850 contiguity guard; keep `next_index[]`/`match_index[]` driven by the ACK path (3.3) so commit advances live.
|
||||
- Observable completion: on a live cluster a primary `jobsub`-driven append replicates a term-CARRYING AppendEntries; standbys persist the leader's real term (recovered `hdr.term == leader_term`, not 0); a clean failover converges to byte-identical `(term,lsn)` WALs (closes the bug-990 / R5.1 term-identity gap); the library `commit_index` advances from live quorum ACKs.
|
||||
- _Requirements: 1.1, 1.2, 1.3, 1.4, 2.5, 4.1_
|
||||
- _Boundary: repl.c / persist.c / ha.c live replication path (send + intake cutover)_
|
||||
- _Depends: 3.1, 3.2, 3.3_
|
||||
|
||||
## 4. Configuration ordering as a unified `(term,lsn)` marker (R7)
|
||||
|
||||
- [x] 4.1 Add the `WAL_CONFIG_MARKER` entry type and reference payload
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue