Skip to content

feat(wal): stream real per-block server acks for faster PostgreSQL feedback - #217

Merged
fcanovai merged 1 commit into
mainfrom
rpozero
Sep 17, 2026
Merged

fcanovai merged 1 commit into
mainfrom
rpozero

Conversation

@fcanovai

@fcanovai fcanovai commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Report to PostgreSQL only what the Klio server has actually durably received, instead of the client's own local write/send progress, and deliver that feedback as soon as it's available.

The WAL Put RPC becomes bidirectional: the server now streams back a PutResult (write_lsn/flush_lsn) per batch of blocks it flushes, instead of a single result at the very end of the file. Both sides run a background goroutine to shuttle these acks without blocking the hot path, so the client can turn them into standby status updates for PostgreSQL as soon as they arrive, rather than only once the whole file is done.

Closes #98

@leonardoce
leonardoce force-pushed the rpozero branch 4 times, most recently from 0ba07c5 to e311f77 Compare September 4, 2026 13:48
…edback

Report to PostgreSQL only what the Klio server has actually durably
received, instead of the client's own local write/send progress, and
deliver that feedback as soon as it's available.

The WAL Put RPC becomes bidirectional: the server now streams back a
PutResult (write_lsn/flush_lsn) per batch of blocks it flushes, instead of
a single result at the very end of the file. Both sides run a background
goroutine to shuttle these acks without blocking the hot path, so the
client can turn them into standby status updates for PostgreSQL as soon
as they arrive, rather than only once the whole file is done.

Assisted-by: Claude
Co-authored-by: Leonardo Cecchi <leonardo.cecchi@enterprisedb.com>
Signed-off-by: Francesco Canovai <francesco.canovai@enterprisedb.com>
@fcanovai
fcanovai requested review from a team and jlong49 as code owners September 17, 2026 12:31
@fcanovai
fcanovai merged commit bc1554b into main Sep 17, 2026
16 checks passed
@fcanovai
fcanovai deleted the rpozero branch September 17, 2026 15:22
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.

WAL client reports unacknowledged flush position to Postgres, breaking RPO 0 guarantee

2 participants