feat(ha-repl-hardening): populate stateReport in standby heartbeat reply (task 2.3)
OPCode_nop handler now sends stateReport {applied_lsn, config_tag}
instead of nodata. Function in ha.c for unit-test linkability.
Two tests: warm state and zero-state fresh standby (Req 1.4).
This commit is contained in:
parent
6bbcff62ca
commit
7dc657b1bd
5 changed files with 128 additions and 5 deletions
|
|
@ -26,8 +26,9 @@
|
|||
#include <time.h>
|
||||
|
||||
#include "config.h" /* XCE_MAXNAME_LEN, MAX_STANDBYS, etc. */
|
||||
#include "myconf.h" /* myconf_t, config_version_tag */
|
||||
#include "persist.h" /* persist_t, apply_wal_entry */
|
||||
#include "typemap.h" /* wal_catchup_entry_t */
|
||||
#include "typemap.h" /* wal_catchup_entry_t, state_report_t, xce_reply_t */
|
||||
#include "xce/cluster.h" /* xce_candidate_t */
|
||||
#include "zarray.h"
|
||||
#include "raft/raft.h" /* raft_state_t, raft_init */
|
||||
|
|
@ -280,6 +281,14 @@ int ha_dispatch_gate(ha_state_t *ha, int opcode);
|
|||
int ha_apply_wal_catchup_entry(ha_state_t *ha, persist_t *p,
|
||||
wal_catchup_entry_t *entry);
|
||||
|
||||
/* ha_nop_reply_state_report — populate a heartbeat reply with stateReport.
|
||||
* Fills *sr from ha->applied_lsn (atomic read) and myconf->config_version_tag,
|
||||
* then sets reply_out->data_which = stateReportMsg and
|
||||
* reply_out->data.state_report = sr.
|
||||
* Caller must keep *sr live until xce_reply() serialises the reply. */
|
||||
void ha_nop_reply_state_report(ha_state_t *ha, myconf_t *myconf,
|
||||
state_report_t *sr, xce_reply_t *reply_out);
|
||||
|
||||
/* ── HA Config Bootstrap & Term Durability (ha-config-bootstrap spec) ── */
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue