feat(ha-commit-engine): honest write-admission quorum accounting (task 4.2)
repl_active_standby_count: registry truth (ep != NULL && !in_catch_up) under r->lock. ha_state_t gains repl back-pointer (wired at init by task 5.3); ha_has_write_quorum uses registry truth when wired, exact legacy fallback when NULL; formula unchanged. Test 29 (wired gate, catch-up-only standby → NOT_READY, admits after clear) captured RED pre-fix. 29/29 group tests; suite at the 3-failure baseline.
This commit is contained in:
parent
b2598823c0
commit
c9154bd5cc
6 changed files with 92 additions and 11 deletions
|
|
@ -192,6 +192,12 @@ typedef struct {
|
|||
uint64_t standby_reported_lsn[MAX_HA_CANDIDATES]; /* Last applied_lsn reported by each standby */
|
||||
bool standby_converged[MAX_HA_CANDIDATES]; /* Whether standby[i] has converged with primary */
|
||||
int peer_connect_fail_count[MAX_HA_CANDIDATES]; /* throttle log spam on repeated connect failure */
|
||||
/* ── New field added by ha-commit-engine spec (Task 4.2) ──────── */
|
||||
replicator_t *repl; /* Back-pointer to the standby registry (persist_t.repl).
|
||||
* When set, ha_has_write_quorum counts registry truth via
|
||||
* repl_active_standby_count (ep != NULL && !in_catch_up);
|
||||
* NULL → legacy standby_endpoints->count fallback.
|
||||
* (Req 3.1-3.3, 6.1, 6.2; wired at init by task 5.3.) */
|
||||
} ha_state_t;
|
||||
|
||||
/* ── Public API ────────────────────────────────────────────── */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue