Repository navigation
perf: merge Parquet by column, bound pressured merges, and free rollup gates - #315
Merged
Merged
Conversation
…p gates An 8-vCPU benchmark of v2026.10.5-alpha failed its gates. A compaction merge of 128 log batches ran on one core at about 52k rows/s, against 250-380k logs/s of ingest. Generation-0 debt reached the hard limit, ingest stopped for about 100 s, and generators timed out. - Compaction merges each physical column with one shared row schedule. Span sort keys are merged once and drive the schedule. Up to eight columns decode, encode and compress concurrently, with no wide-row conversion. Locally, 6.4M-row merges went from 575k to 2.36M rows/s for logs and metrics, and from 233k to 794k for spans. Logical values, physical schema, row groups, footer bounds and the trace index are unchanged. - While reclaimable debt is at or above half the limit, a generation-0 merge takes at most 4M rows, so debt retires in steps of seconds. Inputs above half that ceiling no longer count toward blocking debt. - Service, edge and version passes no longer park the analytical gate: when background Parquet admission is unavailable they release it and retry on their cadence. - The service rollup materialises its affected keys once and binds exact native event-time bounds. A dense 15M-row minute went from 2.9 s to 0.5 s and from 954 MiB to 52 MiB peak. Claude-Session: https://claude.ai/code/session_01XA52nWyQ3R5f5kK8kjpAQW
TestAnalyticalRollupsReleaseGateWhenPublicationBlocksAdmission bounded RecordAnomalies by 50 ms. On a CI runner under -race the INSERT itself took longer and was interrupted, although the gate was not parked. The successful paths in both admission tests now allow 5 s, which still fails long before the former 15-second admission lease. The stats timeout case keeps its short deadline. Claude-Session: https://claude.ai/code/session_01XA52nWyQ3R5f5kK8kjpAQW
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
An 8-vCPU benchmark of v2026.10.5-alpha (Fanout and telemetrygen on separate ccx33s) failed its gates. A compaction merge of 128 log batches ran on one core at about 52k rows/s, while logs arrived at 250-380k/s. Generation-0 debt reached the hard limit, ingest stopped for about 100 s, and generators timed out on their export deadline. The sustained mixed phase spent 152 of 300 s in backpressure.
Local measurements on 6.4M-row realistic merges, idle:
Other local measurements:
No configuration, format, physical-schema or durability change.
Test plan
just checkjust test-racehttps://claude.ai/code/session_01XA52nWyQ3R5f5kK8kjpAQW