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:
Rongsong Shen 2026-06-10 08:11:05 +00:00
parent cdd446fc17
commit 18e351ee1b
7 changed files with 780 additions and 91 deletions

View file

@ -2,14 +2,14 @@
"version": 1,
"created_at": "2026-05-21T04:35:43.577Z",
"lifetime": {
"total_tokens_estimated": 36119149,
"total_reads": 7660,
"total_writes": 12970,
"total_sessions": 78,
"anatomy_hits": 6139,
"anatomy_misses": 1425,
"repeated_reads_blocked": 27988,
"estimated_savings_vs_bare_cli": 339599108
"total_tokens_estimated": 36275695,
"total_reads": 7687,
"total_writes": 12986,
"total_sessions": 83,
"anatomy_hits": 6152,
"anatomy_misses": 1437,
"repeated_reads_blocked": 28002,
"estimated_savings_vs_bare_cli": 339735036
},
"sessions": [
{
@ -115607,6 +115607,378 @@
"repeated_reads_blocked": 3,
"anatomy_lookups": 2
}
},
{
"id": "session-2026-06-10-2005",
"started": "2026-06-10T03:05:15.158Z",
"ended": "2026-06-10T03:09:39.356Z",
"reads": [
{
"file": "/tmp/claude-1000/-home-rshen-projects-xce-worktrees-persistent-ha/5f840ae7-731a-4514-9c60-78d409e11dda/tasks/bvwlwgoup.output",
"tokens_estimated": 0,
"was_repeated": false,
"anatomy_had_description": false
}
],
"writes": [],
"totals": {
"input_tokens_estimated": 0,
"output_tokens_estimated": 0,
"reads_count": 1,
"writes_count": 0,
"repeated_reads_blocked": 0,
"anatomy_lookups": 0
}
},
{
"id": "session-2026-06-10-2005",
"started": "2026-06-10T03:05:15.158Z",
"ended": "2026-06-10T03:14:51.504Z",
"reads": [
{
"file": "/tmp/claude-1000/-home-rshen-projects-xce-worktrees-persistent-ha/5f840ae7-731a-4514-9c60-78d409e11dda/tasks/bvwlwgoup.output",
"tokens_estimated": 0,
"was_repeated": false,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/.kiro/specs/ha-repl-hardening/tasks.md",
"tokens_estimated": 4464,
"was_repeated": false,
"anatomy_had_description": false
}
],
"writes": [],
"totals": {
"input_tokens_estimated": 4464,
"output_tokens_estimated": 0,
"reads_count": 2,
"writes_count": 0,
"repeated_reads_blocked": 0,
"anatomy_lookups": 1
}
},
{
"id": "session-2026-06-10-2005",
"started": "2026-06-10T03:05:15.158Z",
"ended": "2026-06-10T03:17:27.711Z",
"reads": [
{
"file": "/tmp/claude-1000/-home-rshen-projects-xce-worktrees-persistent-ha/5f840ae7-731a-4514-9c60-78d409e11dda/tasks/bvwlwgoup.output",
"tokens_estimated": 0,
"was_repeated": false,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/.kiro/specs/ha-repl-hardening/tasks.md",
"tokens_estimated": 4464,
"was_repeated": true,
"anatomy_had_description": false
}
],
"writes": [],
"totals": {
"input_tokens_estimated": 4464,
"output_tokens_estimated": 0,
"reads_count": 2,
"writes_count": 0,
"repeated_reads_blocked": 1,
"anatomy_lookups": 1
}
},
{
"id": "session-2026-06-10-2005",
"started": "2026-06-10T03:05:15.158Z",
"ended": "2026-06-10T03:20:44.901Z",
"reads": [
{
"file": "/tmp/claude-1000/-home-rshen-projects-xce-worktrees-persistent-ha/5f840ae7-731a-4514-9c60-78d409e11dda/tasks/bvwlwgoup.output",
"tokens_estimated": 0,
"was_repeated": false,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/.kiro/specs/ha-repl-hardening/tasks.md",
"tokens_estimated": 4464,
"was_repeated": true,
"anatomy_had_description": false
}
],
"writes": [],
"totals": {
"input_tokens_estimated": 4464,
"output_tokens_estimated": 0,
"reads_count": 2,
"writes_count": 0,
"repeated_reads_blocked": 1,
"anatomy_lookups": 1
}
},
{
"id": "session-2026-06-10-2005",
"started": "2026-06-10T03:05:15.158Z",
"ended": "2026-06-10T03:26:38.667Z",
"reads": [
{
"file": "/tmp/claude-1000/-home-rshen-projects-xce-worktrees-persistent-ha/5f840ae7-731a-4514-9c60-78d409e11dda/tasks/bvwlwgoup.output",
"tokens_estimated": 0,
"was_repeated": false,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/.kiro/specs/ha-repl-hardening/tasks.md",
"tokens_estimated": 4464,
"was_repeated": true,
"anatomy_had_description": false
}
],
"writes": [],
"totals": {
"input_tokens_estimated": 4464,
"output_tokens_estimated": 0,
"reads_count": 2,
"writes_count": 0,
"repeated_reads_blocked": 1,
"anatomy_lookups": 1
}
},
{
"id": "session-2026-06-10-2005",
"started": "2026-06-10T03:05:15.158Z",
"ended": "2026-06-10T03:41:09.282Z",
"reads": [
{
"file": "/tmp/claude-1000/-home-rshen-projects-xce-worktrees-persistent-ha/5f840ae7-731a-4514-9c60-78d409e11dda/tasks/bvwlwgoup.output",
"tokens_estimated": 0,
"was_repeated": false,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/.kiro/specs/ha-repl-hardening/tasks.md",
"tokens_estimated": 4464,
"was_repeated": true,
"anatomy_had_description": false
}
],
"writes": [],
"totals": {
"input_tokens_estimated": 4464,
"output_tokens_estimated": 0,
"reads_count": 2,
"writes_count": 0,
"repeated_reads_blocked": 1,
"anatomy_lookups": 1
}
},
{
"id": "session-2026-06-10-2005",
"started": "2026-06-10T03:05:15.158Z",
"ended": "2026-06-10T04:07:16.956Z",
"reads": [
{
"file": "/tmp/claude-1000/-home-rshen-projects-xce-worktrees-persistent-ha/5f840ae7-731a-4514-9c60-78d409e11dda/tasks/bvwlwgoup.output",
"tokens_estimated": 0,
"was_repeated": false,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/.kiro/specs/ha-repl-hardening/tasks.md",
"tokens_estimated": 4464,
"was_repeated": true,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.c",
"tokens_estimated": 40632,
"was_repeated": true,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_connection_reuse.c",
"tokens_estimated": 6320,
"was_repeated": true,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/tools/xce-build.sh",
"tokens_estimated": 0,
"was_repeated": false,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/.claude/skills/xce-build/SKILL.md",
"tokens_estimated": 112,
"was_repeated": false,
"anatomy_had_description": false
},
{
"file": "/home/claude/.claude/projects/-home-rshen-projects-xce-worktrees-persistent-ha/d1286bee-4e08-4c6f-80dd-0fb0dc613333/tool-results/b5j0ecdqn.txt",
"tokens_estimated": 0,
"was_repeated": true,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/config_repl.c",
"tokens_estimated": 14812,
"was_repeated": false,
"anatomy_had_description": false
}
],
"writes": [
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_connection_reuse.c",
"tokens_estimated": 68,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_connection_reuse.c",
"tokens_estimated": 68,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/cluster.c",
"tokens_estimated": 94,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/cluster.c",
"tokens_estimated": 99,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/config_repl.c",
"tokens_estimated": 110,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.c",
"tokens_estimated": 110,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.c",
"tokens_estimated": 34,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.h",
"tokens_estimated": 190,
"action": "edit"
}
],
"totals": {
"input_tokens_estimated": 66340,
"output_tokens_estimated": 773,
"reads_count": 8,
"writes_count": 8,
"repeated_reads_blocked": 5,
"anatomy_lookups": 4
}
},
{
"id": "session-2026-06-10-2005",
"started": "2026-06-10T03:05:15.158Z",
"ended": "2026-06-10T04:11:39.499Z",
"reads": [
{
"file": "/tmp/claude-1000/-home-rshen-projects-xce-worktrees-persistent-ha/5f840ae7-731a-4514-9c60-78d409e11dda/tasks/bvwlwgoup.output",
"tokens_estimated": 0,
"was_repeated": false,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/.kiro/specs/ha-repl-hardening/tasks.md",
"tokens_estimated": 4464,
"was_repeated": true,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.c",
"tokens_estimated": 40632,
"was_repeated": true,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_connection_reuse.c",
"tokens_estimated": 6320,
"was_repeated": true,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/tools/xce-build.sh",
"tokens_estimated": 0,
"was_repeated": false,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/.claude/skills/xce-build/SKILL.md",
"tokens_estimated": 112,
"was_repeated": false,
"anatomy_had_description": false
},
{
"file": "/home/claude/.claude/projects/-home-rshen-projects-xce-worktrees-persistent-ha/d1286bee-4e08-4c6f-80dd-0fb0dc613333/tool-results/b5j0ecdqn.txt",
"tokens_estimated": 0,
"was_repeated": true,
"anatomy_had_description": false
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/config_repl.c",
"tokens_estimated": 14812,
"was_repeated": false,
"anatomy_had_description": false
}
],
"writes": [
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_connection_reuse.c",
"tokens_estimated": 68,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/testsuite/test_ha_connection_reuse.c",
"tokens_estimated": 68,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/cluster.c",
"tokens_estimated": 94,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/cluster.c",
"tokens_estimated": 99,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/config_repl.c",
"tokens_estimated": 110,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.c",
"tokens_estimated": 110,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.c",
"tokens_estimated": 34,
"action": "edit"
},
{
"file": "/home/rshen/projects/xce/worktrees/persistent_ha/src/controller/ha.h",
"tokens_estimated": 190,
"action": "edit"
}
],
"totals": {
"input_tokens_estimated": 66340,
"output_tokens_estimated": 773,
"reads_count": 8,
"writes_count": 8,
"repeated_reads_blocked": 5,
"anatomy_lookups": 4
}
}
],
"daemon_usage": [],