Skip to content

Refactor restart state - #72

Merged
serprex merged 3 commits into
mainfrom
xact-stash
Jul 21, 2026
Merged

Refactor restart state#72
serprex merged 3 commits into
mainfrom
xact-stash

Conversation

@serprex

@serprex serprex commented Jul 21, 2026

Copy link
Copy Markdown
Member

Replace cursor.bin with manifest.toml, benefits:

  • Restart no longer derives replay floor independently from pruning
  • TOAST retirement and future state pruning can use exactly same persisted position restart will use
  • Floor never moves past ClickHouse durability or locally fsynced WAL

Status loop persists manifest.toml before publishing floor to pruners or sending source feedback

Manifest includes IDENTIFY_SYSTEM info, refuses to progress on timeline switch,
implementing better ergonomics which can be orchestrated with source is a future item

XactBuffer no longer owns second emitter_ack_lsn, simplifies ack pipeline

DrainedBatch consolidates cursor walking, simplifies TOAST,
keeps WAL / backup more consistent with each other

@serprex

serprex commented Jul 21, 2026

Copy link
Copy Markdown
Member Author

PLAN_XACT_TROUBLE.md
PLAN_XACT2.md
PLAN_XACT.md

this evolved over the course of iterating on plans/future/xact_stash.md, which ultimately lead to concluding there were deep design flaws here. This PR starts with R4/R5 of PLAN_XACT_TROUBLE.md

@serprex serprex changed the title Xact stash Refactor restart state Jul 21, 2026
@serprex
serprex force-pushed the xact-stash branch 2 times, most recently from 41bce88 to 43cb377 Compare July 21, 2026 15:18
Replace cursor.bin with manifest.toml, benefits:
* Restart no longer derives replay floor independently from pruning
* TOAST retirement and future state pruning can use exactly same persisted position restart will use
* Floor never moves past ClickHouse durability or locally fsynced WAL

Status loop persists manifest.toml before publishing floor to pruners or sending source feedback

Manifest includes IDENTIFY_SYSTEM info, refuses to progress on timeline switch,
implementing better ergonomics which can be orchestrated with source is a future item

XactBuffer no longer owns second emitter_ack_lsn, simplifies ack pipeline

DrainedBatch consolidates cursor walking, simplifies TOAST,
keeps WAL / backup more consistent with each other
@serprex
serprex merged commit dfd4611 into main Jul 21, 2026
5 checks passed
@serprex
serprex deleted the xact-stash branch July 21, 2026 17:36
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.

2 participants