Skip to content

bench: add grouped aggregate filter benchmarks - #24748

Open
lyne7-sc wants to merge 5 commits into
apache:mainfrom
lyne7-sc:bench/aggregate-filter
Open

bench: add grouped aggregate filter benchmarks#24748
lyne7-sc wants to merge 5 commits into
apache:mainfrom
lyne7-sc:bench/aggregate-filter

Conversation

@lyne7-sc

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

  • Closes #.

Rationale for this change

Add a microbenchmark for measuring grouped aggregate FILTER performance across different filter selectivities and aggregate layouts.

What changes are included in this PR?

  • Add an AggregateExec microbenchmark for grouped aggregates with FILTER.
  • Cover one aggregate, two aggregates sharing a filter, and two aggregates using distinct filters.
  • Cover bare-column and multiplication arguments for the single-aggregate layout.
  • Cover unfiltered, 1%, 10%, 50%, 90%, 99%, and 100% filter selectivities.

Are these changes tested?

Yes.

Are there any user-facing changes?

No.

@github-actions github-actions Bot added the physical-plan Changes to the physical-plan crate label Aug 28, 2026
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.47%. Comparing base (c56a7ab) to head (b88151a).

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #24748      +/-   ##
==========================================
- Coverage   81.47%   81.47%   -0.01%     
==========================================
  Files        1122     1122              
  Lines      404140   404140              
  Branches   404140   404140              
==========================================
- Hits       329284   329275       -9     
- Misses      55546    55548       +2     
- Partials    19310    19317       +7     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@2010YOUY01 2010YOUY01 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! Just some optional suggestions and follow-up ideas.

I don't known if we have SQL benchmarks for aggregate queries with filters, if not, we could also add some in: https://github.com/apache/datafusion/tree/main/benchmarks/sql_benchmarks/clickbench_extended


const NUM_ROWS: usize = 65_536;
const BATCH_SIZE: usize = 8_192;
const NUM_GROUPS: usize = 1_024;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is a key axis to vary, we could add a very small and a very high cardinality variant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

physical-plan Changes to the physical-plan crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants