Skip to content

aggregate fns to have grouped aggregate kernels for sum and count#8314

Open
onursatici wants to merge 4 commits into
developfrom
os/grouped-agg
Open

aggregate fns to have grouped aggregate kernels for sum and count#8314
onursatici wants to merge 4 commits into
developfrom
os/grouped-agg

Conversation

@onursatici

@onursatici onursatici commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Summary

aggregate functions to be able to do grouped aggregations before the fallback that slices group by group.

Implements count for all arrays and sum for primitives.

API Changes

Grouped aggregate kernels now receive a single GroupedArray enum, covering ListViewArray and FixedSizeListArray, instead of exposing separate methods for each list representation

@onursatici onursatici requested a review from a team June 9, 2026 13:24
@onursatici onursatici added the changelog/break A breaking API change label Jun 9, 2026
Comment thread vortex-array/src/aggregate_fn/accumulator_grouped.rs Outdated
Comment thread vortex-array/src/aggregate_fn/accumulator_grouped.rs
Comment thread vortex-array/src/aggregate_fn/accumulator_grouped.rs Outdated
Signed-off-by: Onur Satici <onur@spiraldb.com>

@joseph-isaacs joseph-isaacs 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.

This seems like a good idea

@codspeed-hq

codspeed-hq Bot commented Jun 9, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 73.54%

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚡ 8 improved benchmarks
❌ 5 regressed benchmarks
✅ 1506 untouched benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation bitwise_not_vortex_buffer_mut[128] 216.9 ns 275.3 ns -21.19%
Simulation bitwise_not_vortex_buffer_mut[1024] 278.6 ns 336.9 ns -17.31%
Simulation chunked_varbinview_opt_canonical_into[(1000, 10)] 191.4 µs 226.8 µs -15.6%
Simulation chunked_varbinview_opt_into_canonical[(1000, 10)] 205.7 µs 241.4 µs -14.81%
Simulation bitwise_not_vortex_buffer_mut[2048] 342.2 ns 400.6 ns -14.56%
Simulation count_i32_clustered_nulls 672.6 µs 55.2 µs ×12
Simulation sum_i32_clustered_nulls 581.2 µs 72.5 µs ×8
Simulation sum_i32_nullable_all_valid 350.4 µs 74.2 µs ×4.7
Simulation count_varbinview 259.4 µs 76.1 µs ×3.4
Simulation chunked_bool_canonical_into[(1000, 10)] 46.9 µs 31.8 µs +47.75%
Simulation chunked_varbinview_canonical_into[(100, 100)] 311.3 µs 274.4 µs +13.47%
Simulation chunked_varbinview_into_canonical[(100, 100)] 363.2 µs 327.2 µs +11%
Simulation encode_varbin[(1000, 2)] 177.1 µs 160.3 µs +10.51%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing os/grouped-agg (ef4ae99) with develop (068e1ad)

Open in CodSpeed

Signed-off-by: Onur Satici <onur@spiraldb.com>
Signed-off-by: Onur Satici <onur@spiraldb.com>
Signed-off-by: Onur Satici <onur@spiraldb.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/break A breaking API change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants