Skip to content

perf(zero-cache): batch storer changeDB transactions#3

Closed
Karavil wants to merge 1 commit into
capy/rm-vs-load-benchmarkfrom
capy/rm-vs-load-storer-batching
Closed

perf(zero-cache): batch storer changeDB transactions#3
Karavil wants to merge 1 commit into
capy/rm-vs-load-benchmarkfrom
capy/rm-vs-load-storer-batching

Conversation

@Karavil

@Karavil Karavil commented May 26, 2026

Copy link
Copy Markdown
Owner

what changed

Batches storer writes into grouped changeDB transactions while preserving upstream ACK ordering and status handling.

benchmark output

medium-wide-batch-pressure, 15s, compared to the benchmark baseline:

tx/s: 730.4 -> 804.0
rows/s: 14,608.2 -> 16,079.5
fanout msg/s: 9,172.9 -> 26,125.9
storer drain: 25,421.3 ms -> 0.1 ms
reconnect catchup to join: 32,834.6 ms -> 1,074.5 ms

validation

pnpm exec vitest --project='*15*' run src/services/change-streamer/storer.pg.test.ts
pnpm run check-types
pnpm exec oxlint --config ../../oxlint.config.ts src/services/change-streamer/storer.ts src/services/change-streamer/storer.pg.test.ts src/services/change-streamer/subscriber.ts

Why: reduce replication-manager durable write overhead while keeping upstream ACKs behind changeDB durability

* group multiple upstream commits into one changeDB transaction

* batch changeLog inserts within grouped transactions

* preserve status and keepalive ACK ordering across open upstream transactions
@Karavil Karavil force-pushed the capy/rm-vs-load-storer-batching branch from ad78e24 to 660921a Compare May 26, 2026 19:02
@Karavil

Karavil commented May 26, 2026

Copy link
Copy Markdown
Owner Author

Replaced by rocicorp/mono PRs rocicorp#6070 through rocicorp#6078.

@Karavil Karavil closed this May 26, 2026
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