feat(ha-config-bootstrap): implement committed_config_tag and config quorum commit (task 8.1)

This commit is contained in:
Rongsong Shen 2026-05-28 14:52:29 +00:00
parent 684d3b6608
commit c0cfc1cf83
3 changed files with 20 additions and 3 deletions

View file

@ -189,7 +189,7 @@ Dependency order: startup validation (D) unblocks vtaskmgr before election (A);
- _Boundary: Persistence Layer (persist.c), Replication Layer (repl.c)_
- [ ] 8. Change H: Majority-commit config replication (P)
- [ ] 8.1 Implement OP_upgradeConfigAck handler and committed_config_tag
- [x] 8.1 Implement OP_upgradeConfigAck handler and committed_config_tag
- Add `committed_config_tag` field to cluster config state (ha_state_t via `last_known_committed_config_tag`); piggybacked on `CtrlHeartbeat` via `committedConfigTag`
- Standby handler for `OP_upgradeConfig`: write config blob locally + reply `OP_upgradeConfigAck` with `ackedTag`
- `push_config_to_standbys()` upgraded: write locally → `repl_broadcast(c, OP_upgradeConfig, blob, len)` → `repl_wait_majority_ack(c, commit_timeout_ms, OP_upgradeConfigAck)` → on quorum `atomic_store(&committed_config_tag, tag)` → return; on timeout return `-ETIMEDOUT`