Skip to content

BoundedWindowAggExec in Linear mode is slow for many-partitions #23982

Description

@neilconway

Is your feature request related to a problem or challenge?

For every batch, BoundedWindowAggExec in Linear mode does two operations that are O(n) in the number of live partitions:

  • aggregate_evaluate_stateful / evaluate_stateful iterate all of PartitionBatches and probe PartitionWindowAggStates for each partition, per window expression
  • update_partition_batch calls set_most_recent_row on every buffered partition

This is pretty inefficient when the # of partitions significantly exceeds the batch size; most partitions won't receive a row in the current batch, so we shouldn't need to touch them.

Describe the solution you'd like

No response

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions