Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[timeseries] Part-1: Misc. Refactor to Enable Broker Reduce #14582

Merged
merged 2 commits into from
Dec 4, 2024

Conversation

ankitsultana
Copy link
Contributor

@ankitsultana ankitsultana commented Dec 3, 2024

Summary

First of the multi-part PRs to enable Broker Reduce for the Time Series Engine.

This PR does the following:

  • Renames child references to inputs to be consistent with pinot-query-planner PlanNode.
  • Add withInputs to allow sub-plan cloning in the future.
  • Moves some of the logic from GrpcSendingMailbox to DataBlockUtils. For Broker Reduce, we will send a row based TransferableBlock from the servers to the brokers.

Note: This is a breaking change for the pinot-timeseries-spi, but that should be okay since that spi is marked Unstable and is evolving rapidly.

Test Plan

Ran the Quickstart on local. After the 3-part PRs we will be testing the build out in one of our clusters for scale/perf testing.

@ankitsultana ankitsultana added the timeseries-engine Tracking tag for generic time-series engine work label Dec 3, 2024
@codecov-commenter
Copy link

codecov-commenter commented Dec 3, 2024

Codecov Report

Attention: Patch coverage is 53.57143% with 13 lines in your changes missing coverage. Please review.

Project coverage is 63.97%. Comparing base (59551e4) to head (d45f55f).
Report is 1416 commits behind head on master.

Files with missing lines Patch % Lines
...time/timeseries/PhysicalTimeSeriesPlanVisitor.java 0.00% 3 Missing ⚠️
...pinot/tsdb/spi/plan/serde/TimeSeriesPlanSerde.java 62.50% 1 Missing and 2 partials ⚠️
.../apache/pinot/common/datablock/DataBlockUtils.java 71.42% 1 Missing and 1 partial ⚠️
...untime/timeseries/TimeSeriesPhysicalTableScan.java 0.00% 1 Missing ⚠️
...pinot/tsdb/planner/TimeSeriesQueryEnvironment.java 0.00% 1 Missing ⚠️
.../pinot/tsdb/planner/physical/TableScanVisitor.java 0.00% 1 Missing ⚠️
...he/pinot/tsdb/spi/plan/BaseTimeSeriesPlanNode.java 75.00% 1 Missing ⚠️
...he/pinot/tsdb/spi/plan/LeafTimeSeriesPlanNode.java 50.00% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master   #14582      +/-   ##
============================================
+ Coverage     61.75%   63.97%   +2.22%     
- Complexity      207     1569    +1362     
============================================
  Files          2436     2683     +247     
  Lines        133233   147352   +14119     
  Branches      20636    22590    +1954     
============================================
+ Hits          82274    94268   +11994     
- Misses        44911    46141    +1230     
- Partials       6048     6943     +895     
Flag Coverage Δ
custom-integration1 100.00% <ø> (+99.99%) ⬆️
integration 100.00% <ø> (+99.99%) ⬆️
integration1 100.00% <ø> (+99.99%) ⬆️
integration2 0.00% <ø> (ø)
java-11 63.93% <53.57%> (+2.22%) ⬆️
java-21 63.86% <53.57%> (+2.23%) ⬆️
skip-bytebuffers-false 63.96% <53.57%> (+2.22%) ⬆️
skip-bytebuffers-true 63.81% <53.57%> (+36.09%) ⬆️
temurin 63.97% <53.57%> (+2.22%) ⬆️
unittests 63.97% <53.57%> (+2.22%) ⬆️
unittests1 55.55% <32.14%> (+8.65%) ⬆️
unittests2 34.61% <32.14%> (+6.88%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

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

@@ -54,6 +55,11 @@ public ExecutorService getExecutorService() {
return _executorService;
}

@Override
public BaseTimeSeriesPlanNode withInputs(List<BaseTimeSeriesPlanNode> newInputs) {
Copy link
Contributor

Choose a reason for hiding this comment

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

What is the idea behind withInputs?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is to enable plan cloning, which allows replacing sub-trees of the plan.

Copy link
Contributor

Choose a reason for hiding this comment

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

in MSQ we also use it when executing the explain plan that includes segment information (aka indexes).

@ankitsultana ankitsultana merged commit 3193306 into apache:master Dec 4, 2024
21 checks passed
davecromberge pushed a commit to davecromberge/pinot that referenced this pull request Dec 10, 2024
zeronerdzerogeekzerocool pushed a commit to zeronerdzerogeekzerocool/pinot that referenced this pull request Feb 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
timeseries-engine Tracking tag for generic time-series engine work
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants