feat(ha-heartbeat-committed-propagation): migrate last_known_committed_config_tag to _Atomic (task 1.1)
Mirror the sibling last_known_committed_lsn: all writes release, reads acquire. Prereq for a heartbeat-receive writer + the ctrlstatus reader to interact safely (Req 2.3). Pure access migration, no behavior change; controller suite 0 failures. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
9817813f54
commit
f4327ce4f6
6 changed files with 20 additions and 14 deletions
|
|
@ -169,7 +169,7 @@ typedef struct {
|
|||
void * _Atomic elect_ctx; /* Req 2: ha_elect_ctx_t* during election; NULL otherwise */
|
||||
_Atomic uint64_t last_known_committed_lsn; /* Req 5: from primary heartbeats */
|
||||
sem_t heartbeat_seen; /* Req 1: posted by heartbeat handler during CTRL_INIT */
|
||||
uint64_t last_known_committed_config_tag; /* Req 8: from primary heartbeats */
|
||||
_Atomic uint64_t last_known_committed_config_tag; /* Req 8: from primary heartbeats */
|
||||
_Atomic uint64_t committed_config_tag; /* Req 8.1: set on quorum ACK */
|
||||
/* ── New fields added by election-iomgr-refactor spec (Task 2.1) ── */
|
||||
void *client_ssl_ctx; /* SSL_CTX* (TLS_client_method); created in myapp_run */
|
||||
|
|
@ -769,9 +769,9 @@ int handle_request_vote(ha_state_t *ha,
|
|||
* *out_tag = max(local_config_tag, atomic committed_config_tag)
|
||||
* *out_lsn = max(local_applied_lsn, atomic last_known_committed_lsn)
|
||||
*
|
||||
* Uses acquire loads of the atomic learned-committed fields; never reads the
|
||||
* non-atomic last_known_committed_config_tag (data-race safe). Pure aside from
|
||||
* the atomic reads — no state mutation.
|
||||
* Uses acquire loads of the atomic learned-committed fields; never reads
|
||||
* last_known_committed_config_tag (a heartbeat-learned config tag, not the
|
||||
* vote freshness floor). Pure aside from the atomic reads — no state mutation.
|
||||
*/
|
||||
void ha_vote_self_freshness(ha_state_t *ha,
|
||||
uint64_t local_config_tag,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue