Uh oh!
There was an error while loading. Please reload this page.
bench: add FixedSizeBinary coverage to multi_group_by benchmark - #23650
Conversation
Rich-T-kid
left a comment
There was a problem hiding this comment.
LGTM
nit: may want to varyFSB_WIDTH between benchmarks but this could also bloat the benchmarks
Adds a `fixed_size_binary` experiment to the multi_group_by benchmark that groups on a `(FixedSizeBinary(16), Int32)` key, comparing the vectorized columnar path (`GroupValuesColumn`) against the row-based fallback (`GroupValuesRows`) at 1,000 and 1,000,000 distinct groups. The distinct FixedSizeBinary values come from arrow-rs's `create_fsb_array` benchmark generator; rows cycle through that pool to control cardinality (as `generate_batches` does for Int32). Enabling `bench_util` requires the `test_utils` feature, so the bench entry now declares it. This gives coverage for the `FixedSizeBinaryGroupValueBuilder`: before FixedSizeBinary support, such a schema fell back to `GroupValuesRows`, so the `vectorized` vs `row_based` comparison measures the columnar speedup directly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
36fa31d to
da9f529Comparealamb
commented
Jul 16, 2026
Thank you @Rich-T-kid -- I agree that the varying FSB_WIDTH would bloat things -- I think using FSB 16 (what is used for uuids) is probably a good enough coverage until we have a real usecase for a diffferent size |
codecov-commenter
commented
Jul 16, 2026
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@## main #23650 +/- ##
=======================================
Coverage ? 80.65% =======================================
Files ? 1086 Lines ? 366396 Branches ? 366396 =======================================
Hits ? 295508 Misses ? 53269 Partials ? 17619 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
alamb
commented
Jul 17, 2026
Thank you @zhuqi-lucas |
Uh oh!
There was an error while loading. Please reload this page.
…he#23650) ## Which issue does this PR close? - Related to apache#23646 - Related to apache#23645. ## Rationale for this change The point of a specialized FixedSizeBinary group values is performance but we have no performance benchmark for it. ## What changes are included in this PR? Adds a `fixed_size_binary` experiment to `datafusion/physical-plan/benches/multi_group_by.rs` Run with: ```bash cargo bench -p datafusion-physical-plan --bench multi_group_by --features test_utils -- fixed_size_binary ``` ## Are these changes tested? This is benchmark-only. The benchmark compiles on `main` and runs end-to-end on top of apache#23646. No product code changes. ## Are there any user-facing changes? No. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Which issue does this PR close?
Rationale for this change
The point of a specialized FixedSizeBinary group values is performance but we have no performance benchmark for it.
What changes are included in this PR?
Adds a
fixed_size_binaryexperiment todatafusion/physical-plan/benches/multi_group_by.rsRun with:
Are these changes tested?
This is benchmark-only. The benchmark compiles on
mainand runs end-to-endon top of #23646. No product code changes.
Are there any user-facing changes?
No.