Conversation
Profile a local block for read-path benchmarking: record the block metadata, the row-group count, and present and absent trace IDs. A profile holds only what has to be read from the block, so a benchmark run does not inspect it and every variant of an experiment works from the same measurements. The row-group count comes from the parquet footer rather than meta.TotalRecords, which can over-count: streamingBlock.Complete increments it and then flushes, so a block whose rows divide evenly into row groups records one more than it has. Present IDs are taken at an even stride over every row, so a trace-by-ID benchmark is not confined to the opening pages of each row group. Each absent ID is the midpoint between a present ID and the ID that follows it in the block: row groups hold contiguous ranges of the sort key and the scan reads every row, so the pair is adjacent and the midpoint is absent by construction. That needs no lookup, so a block whose bloom filters are absent can still be profiled.
zhxiaogg
force-pushed
the
feat/benchmark-plan
branch
from
September 14, 2026 21:36
f907f46 to
5fcd07e
Compare
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.
What this PR does:
Adds
tempo-cli benchmark profile: inspects a local block and writes a JSON profile of it — block metadata, row-group count, and present and absent trace IDs.Flags are documented in
docs/sources/tempo/operations/tempo_cli.md.Which issue(s) this PR fixes:
None.
Checklist
.chloggen/