feat(ha-wal-replication): repl_broadcast TCP send (task 1.1)
Replace no-send stub with real WAL entry transmission via xce_wal_batch_req_raw. For each non-catch-up registered standby, serialize the entry header+payload into a wal_catchup_entry_t and enqueue. Keep the MAX_PENDING_ACKS eviction guard. 5 new tests: no-standbys, one-standby-send, skip-catch-up, evict-overloaded, send-failure-continues. Controller suite green. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
cdd446fc17
commit
18e351ee1b
7 changed files with 780 additions and 91 deletions
|
|
@ -1,110 +1,108 @@
|
|||
{
|
||||
"session_id": "session-2026-06-10-1720",
|
||||
"started": "2026-06-10T00:20:07.286Z",
|
||||
"session_id": "session-2026-06-10-2005",
|
||||
"started": "2026-06-10T03:05:15.158Z",
|
||||
"files_read": {
|
||||
"/home/rshen/projects/xce/worktrees/persistent_ha/src/lib/testsuite/test_raft.c": {
|
||||
"count": 4,
|
||||
"tokens": 25610,
|
||||
"first_read": "2026-06-10T00:20:59.235Z"
|
||||
},
|
||||
"/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.h": {
|
||||
"/tmp/claude-1000/-home-rshen-projects-xce-worktrees-persistent-ha/5f840ae7-731a-4514-9c60-78d409e11dda/tasks/bvwlwgoup.output": {
|
||||
"count": 1,
|
||||
"tokens": 10007,
|
||||
"first_read": "2026-06-10T00:23:31.412Z"
|
||||
"tokens": 0,
|
||||
"first_read": "2026-06-10T03:07:38.211Z"
|
||||
},
|
||||
"/home/rshen/projects/xce/worktrees/persistent_ha/.kiro/specs/ha-repl-hardening/tasks.md": {
|
||||
"count": 2,
|
||||
"tokens": 4464,
|
||||
"first_read": "2026-06-10T03:13:09.456Z"
|
||||
},
|
||||
"/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.c": {
|
||||
"count": 2,
|
||||
"tokens": 40632,
|
||||
"first_read": "2026-06-10T03:45:56.165Z"
|
||||
},
|
||||
"/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_connection_reuse.c": {
|
||||
"count": 3,
|
||||
"tokens": 6320,
|
||||
"first_read": "2026-06-10T03:45:59.462Z"
|
||||
},
|
||||
"/home/rshen/projects/xce/worktrees/persistent_ha/src/tools/xce-build.sh": {
|
||||
"count": 1,
|
||||
"tokens": 0,
|
||||
"first_read": "2026-06-10T03:47:28.557Z"
|
||||
},
|
||||
"/home/rshen/projects/xce/worktrees/persistent_ha/.claude/skills/xce-build/SKILL.md": {
|
||||
"count": 1,
|
||||
"tokens": 112,
|
||||
"first_read": "2026-06-10T03:47:28.567Z"
|
||||
},
|
||||
"/home/claude/.claude/projects/-home-rshen-projects-xce-worktrees-persistent-ha/d1286bee-4e08-4c6f-80dd-0fb0dc613333/tool-results/b5j0ecdqn.txt": {
|
||||
"count": 2,
|
||||
"tokens": 0,
|
||||
"first_read": "2026-06-10T03:52:41.320Z"
|
||||
},
|
||||
"/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/config_repl.c": {
|
||||
"count": 1,
|
||||
"tokens": 14812,
|
||||
"first_read": "2026-06-10T03:55:28.135Z"
|
||||
}
|
||||
},
|
||||
"files_written": [
|
||||
{
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/lib/testsuite/test_raft.c",
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_connection_reuse.c",
|
||||
"action": "edit",
|
||||
"tokens": 114,
|
||||
"at": "2026-06-10T00:22:18.260Z"
|
||||
"tokens": 68,
|
||||
"at": "2026-06-10T03:46:50.995Z"
|
||||
},
|
||||
{
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/lib/testsuite/test_raft.c",
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_connection_reuse.c",
|
||||
"action": "edit",
|
||||
"tokens": 523,
|
||||
"at": "2026-06-10T00:22:44.317Z"
|
||||
"tokens": 68,
|
||||
"at": "2026-06-10T03:46:54.407Z"
|
||||
},
|
||||
{
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/lib/testsuite/test_raft.c",
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/cluster.c",
|
||||
"action": "edit",
|
||||
"tokens": 36,
|
||||
"at": "2026-06-10T00:22:57.391Z"
|
||||
"tokens": 94,
|
||||
"at": "2026-06-10T03:54:56.569Z"
|
||||
},
|
||||
{
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/lib/raft/raft.c",
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/cluster.c",
|
||||
"action": "edit",
|
||||
"tokens": 144,
|
||||
"at": "2026-06-10T00:23:00.680Z"
|
||||
"tokens": 99,
|
||||
"at": "2026-06-10T03:54:59.858Z"
|
||||
},
|
||||
{
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/config_repl.c",
|
||||
"action": "edit",
|
||||
"tokens": 110,
|
||||
"at": "2026-06-10T03:55:44.696Z"
|
||||
},
|
||||
{
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.c",
|
||||
"action": "edit",
|
||||
"tokens": 260,
|
||||
"at": "2026-06-10T00:23:18.664Z"
|
||||
"tokens": 110,
|
||||
"at": "2026-06-10T04:00:50.032Z"
|
||||
},
|
||||
{
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.c",
|
||||
"action": "edit",
|
||||
"tokens": 121,
|
||||
"at": "2026-06-10T00:23:21.916Z"
|
||||
"tokens": 34,
|
||||
"at": "2026-06-10T04:01:15.196Z"
|
||||
},
|
||||
{
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.h",
|
||||
"action": "edit",
|
||||
"tokens": 85,
|
||||
"at": "2026-06-10T00:23:49.279Z"
|
||||
},
|
||||
{
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.h",
|
||||
"action": "edit",
|
||||
"tokens": 28,
|
||||
"at": "2026-06-10T00:23:52.561Z"
|
||||
},
|
||||
{
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_vote_gate.c",
|
||||
"action": "edit",
|
||||
"tokens": 122,
|
||||
"at": "2026-06-10T00:24:14.357Z"
|
||||
},
|
||||
{
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_vote_gate.c",
|
||||
"action": "edit",
|
||||
"tokens": 109,
|
||||
"at": "2026-06-10T00:24:18.132Z"
|
||||
},
|
||||
{
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_vote_gate.c",
|
||||
"action": "edit",
|
||||
"tokens": 63,
|
||||
"at": "2026-06-10T00:24:21.425Z"
|
||||
},
|
||||
{
|
||||
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/myapp.c",
|
||||
"action": "edit",
|
||||
"tokens": 258,
|
||||
"at": "2026-06-10T00:24:41.870Z"
|
||||
},
|
||||
{
|
||||
"file": "/home/claude/.claude/projects/-home-rshen-projects-xce-xce/memory/project_ha_bootstrap_progress.md",
|
||||
"action": "edit",
|
||||
"tokens": 147,
|
||||
"at": "2026-06-10T00:32:34.052Z"
|
||||
"tokens": 190,
|
||||
"at": "2026-06-10T04:02:07.091Z"
|
||||
}
|
||||
],
|
||||
"edit_counts": {
|
||||
"src/lib/testsuite/test_raft.c": 3,
|
||||
"src/lib/raft/raft.c": 1,
|
||||
"src/controller/testsuite/test_ha_connection_reuse.c": 2,
|
||||
"src/controller/cluster.c": 2,
|
||||
"src/controller/config_repl.c": 1,
|
||||
"src/controller/ha.c": 2,
|
||||
"src/controller/ha.h": 2,
|
||||
"src/controller/testsuite/test_ha_vote_gate.c": 3,
|
||||
"src/controller/myapp.c": 1,
|
||||
"../../../../../claude/.claude/projects/-home-rshen-projects-xce-xce/memory/project_ha_bootstrap_progress.md": 1
|
||||
"src/controller/ha.h": 1
|
||||
},
|
||||
"anatomy_hits": 2,
|
||||
"anatomy_misses": 0,
|
||||
"repeated_reads_warned": 3,
|
||||
"anatomy_hits": 4,
|
||||
"anatomy_misses": 3,
|
||||
"repeated_reads_warned": 5,
|
||||
"cerebrum_warnings": 0,
|
||||
"stop_count": 1
|
||||
"stop_count": 9
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue