Skip to content

feat(write): flush_server_buffers() for Arc ingest buffer flush - #32

Merged
xe-nvdk merged 1 commit into
mainfrom
feat/flush-server-buffers
Nov 2, 2026
Merged

xe-nvdk merged 1 commit into
mainfrom
feat/flush-server-buffers

Conversation

@xe-nvdk

@xe-nvdk xe-nvdk commented Nov 2, 2026

Copy link
Copy Markdown
Member

Adds client.write.flush_server_buffers(), sync and async, for POST /api/v1/write/line-protocol/flush (admin). #28 deliberately left this route out because it isn't a diagnostic; this adds it on the write client instead.

  • It flushes everything on the node. Arc's line protocol, MessagePack and MQTT paths share one Arrow buffer (cmd/arc/main.go hands the same arrowBuffer to both handlers), so the flush covers every protocol and every database on the node that receives it. The docstring and README say so.
  • Naming. It is named apart from the client-side buffered() writer's flush(), which sends rows the client still holds.
  • Live suites. All three live suites now flush through this method instead of private HTTP calls.
  • Parity suite docs. Its docstring now lists the features the node has to enable: delete, governance, query management, audit and reconciliation are off by default in Arc. Running it against a default node gives 18 config-only failures.

Verified

  • Unit: 1093 passed. The new tests cover the request, the 403 for a non-admin token, and that a failed flush is not retried.
  • Live, Arc main 92a1f9d1, licensed single node: the flush returns {"status": "success", ...} and the row is queryable immediately; a read-only token gets ArcPermissionError.
  • test_live_parity.py: 75 passed, 6 skipped (edge sync), 2 xfailed, with every flush going through the new method.

https://claude.ai/code/session_01VMc4wAG9mUUc3wB2ingB8c

POST /api/v1/write/line-protocol/flush (admin) on the sync and async write
clients. Arc's line protocol, MessagePack and MQTT paths share one buffer,
so it flushes every row the node holds, across databases. Named apart from
the client-side BufferedWriter.flush().

The live suites now flush through it instead of private HTTP calls, and the
parity suite's docstring lists the features its node must enable.

Claude-Session: https://claude.ai/code/session_01VMc4wAG9mUUc3wB2ingB8c
@xe-nvdk
xe-nvdk merged commit 358f9e9 into main Nov 2, 2026
12 checks passed
@xe-nvdk
xe-nvdk deleted the feat/flush-server-buffers branch November 2, 2026 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant