Skip to content

fix(sync): a page's time budget counts applying, not its rewind (T13275) - #1924

Merged
kryptobaseddev merged 5 commits into
mainfrom
fix/T13275-page-clock
Oct 7, 2026
Merged

kryptobaseddev merged 5 commits into
mainfrom
fix/T13275-page-clock

Conversation

@kryptobaseddev

Copy link
Copy Markdown
Owner

Task: T13275

Follow-up to #1923 (review LOW), stacked on it.

What changes

pageMs was measured from pageStart, before rewindTxns. With a large scope, the rewind alone could use the budget. Every page then admitted one txn and rewound and replayed the same scope again, an O(txns × scope) churn under the write lock. The page clock (applyStart) now starts after the rewind.

Tests

  • New: a stubbed clock where opening the page (the rewind) takes 100 ms and applying takes none. With pageMs: 50, three foreign txns still share one page (applied_frame) and are all rebased.
  • Mutation: measuring from pageStart again fails the test.

Locally green:

  • 121 apply/ tests;
  • tsc;
  • biome on every file changed vs main;
  • gates 28 and 38 (--base origin/feat/T13193-pages).

🤖 Generated with Claude Code

kryptobaseddev and others added 2 commits October 5, 2026 11:45
#1923 review LOW: pageMs was measured from before rewindTxns, so a large
scope could leave every page one txn that rewound and replayed the same
scope again. The bound now starts after the rewind.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Base automatically changed from feat/T13193-pages to main October 7, 2026 14:11
@kryptobaseddev

Copy link
Copy Markdown
Owner Author

Merging at the approved head be8633b (review-hotfix APPROVE merge-only be8633b (clean main merge over fb7813e); CI: 105 checks, all green).

@kryptobaseddev
kryptobaseddev merged commit f12ae92 into main Oct 7, 2026
110 of 201 checks passed
@kryptobaseddev
kryptobaseddev deleted the fix/T13275-page-clock branch October 7, 2026 14:50
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