feat(ha-repl-hardening): add per-standby convergence tracking arrays (task 1.4)

Add standby_reported_tag/lsn/converged arrays to ha_state_t, sized
MAX_HA_CANDIDATES. Zero-init via existing memset in ha_init().
Unit test verifies zero-init and writability.
This commit is contained in:
Rongsong Shen 2026-06-04 14:14:23 +00:00
parent 0121bc0683
commit e3ca775f0d
4 changed files with 55 additions and 1 deletions

View file

@ -177,6 +177,10 @@ typedef struct {
void *committing_timeout_ctx; /* committing_timeout_ctx_t* for cancel on step-down */
/* ── New fields added by ha-heartbeat-liveness spec (Task 1.1) ── */
time_t last_activity; /* CLOCK_MONOTONIC seconds of last primary message; 0 = none yet */
/* ── New fields added by ha-repl-hardening spec (Task 1.4) ──────── */
uint64_t standby_reported_tag[MAX_HA_CANDIDATES]; /* Last config_tag reported by each standby */
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 */
} ha_state_t;
/* ── Public API ────────────────────────────────────────────── */