feat(ha-commit-durability): durable-backed vote/PreVote freshness floor + bare-durable candidate advertise (task 4.2)
This commit is contained in:
parent
4b7457144c
commit
3049b620f3
7 changed files with 282 additions and 26 deletions
|
|
@ -678,6 +678,20 @@ void ha_vote_self_freshness(ha_state_t *ha,
|
|||
uint64_t *out_tag,
|
||||
uint64_t *out_lsn);
|
||||
|
||||
/*
|
||||
* ha_candidate_advertise_lsn: the LSN a candidate advertises in a RequestVote /
|
||||
* PreVote payload (ha-commit-durability task 4.2).
|
||||
*
|
||||
* Returns the BARE durable WAL tip persist_durable_floor(p) — NOT the folded
|
||||
* max(durable_floor, last_known_committed_lsn) ha_vote_self_freshness computes
|
||||
* for the voter floor. A candidate may only claim a log position it can
|
||||
* durably back, so a node restarted with a truncated log cannot over-advertise
|
||||
* a stale volatile learned-committed value and win (design §1a/§5a). The
|
||||
* candidate's TAG axis still uses ha_vote_self_freshness (config epoch is
|
||||
* orthogonal to log durability). NULL-safe (→ 0).
|
||||
*/
|
||||
uint64_t ha_candidate_advertise_lsn(persist_t *p);
|
||||
|
||||
/*
|
||||
* ha_elect_evaluate_and_signal: evaluate accumulated ha_elect_ctx_t votes.
|
||||
* Sets ctx->result (1=primary, 0=standby) and posts ctx->done semaphore.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue