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
|
|
@ -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": [],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue