apache / apache/pinot

GroupByOrderByCombineOperator does not bound the number of threads it uses

Open
#8,928 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
6.1k
Forks
1.5k
Avg merge
2d 3h
Merged PRs (30d)
195

Description

When the user does not specify the number of threads for a query, the CombinePlan* operators both use a minimum of 1 threads, maximum of 10 threads, and a default of num_cpus/2 threads for their tasks.

The GroupByOrderByCombineOperator on the other hand just sets the number of threads to the number of operators.

I haven't actually profiled this or logged how many operators there are in practice, but this feels like it could be a bug when comparing to how the CombinePlan code treats this flag. I'm curious if you feel this is of concern as well before we dig into it further.

Contributor guide

Open the contributing guide

Research direction

Start by comparing GroupByOrderByCombineOperator with the CombinePlan* operators, focusing on how each selects the number of task threads when the query does not specify a value. Determine whether the operator count can exceed the intended bounds, then define the expected minimum, maximum, and default behavior and validate it with relevant query execution tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.