Skip to content

Remove no-op bias from mutation load generation - #24

Merged
bweis merged 1 commit into
mainfrom
bench/mutation-targets
Sep 19, 2026
Merged

bweis merged 1 commit into
mainfrom
bench/mutation-targets

Conversation

@bweis

@bweis bweis commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

High offered write rates previously targeted not-yet-created IDs and spawned a shell for every no-op, obscuring actual useful throughput. Writers now select and lock a live row in the current key range, wrap gaps, and assert exactly one affected row atomically. Failed/exhausted selections invalidate the run; completed transactions cannot silently be no-ops.

The protocol remains a key-space sample rather than uniform row sampling. Selection cost is included in timings, and the new protocol is explicitly distinguished from historical results. No runtime index code changed.

Validation: 88 benchmark tests, source-header checks, a native sparse/locked-target and rollback regression, and a PG18 30-second two-writer smoke at 8,000 offered mutations/sec passed. All 239,432 completed mutations affected a row; first/last-decile writer lag p95 was 0.44/0.45 ms. This is a short synthetic protocol check, not a production capacity claim. Native regression is added to all four CI jobs.

Stacked on #23.

@bweis
bweis added this pull request to stack #22 September 19, 2026 07:26
@bweis
bweis force-pushed the bench/mutation-targets branch from fc6901f to 73e6cc3 Compare September 19, 2026 07:30
@bweis
bweis removed this pull request from stack #22 September 19, 2026 07:30
@bweis
bweis added this pull request to stack #26 September 19, 2026 07:30
@bweis
bweis marked this pull request as ready for review September 19, 2026 07:37
Base automatically changed from bench/sustained-mutation to main September 19, 2026 07:38
@bweis
bweis force-pushed the bench/mutation-targets branch from 73e6cc3 to ab93a87 Compare September 19, 2026 07:38
@bweis
bweis merged commit f3da45d into main Sep 19, 2026
16 checks passed
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