-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[opt](nereids) recover adoptive bucket shuffle #36784
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
[opt](nereids) recover adoptive bucket shuffle #36784
Conversation
|
Thank you for your contribution to Apache Doris. Since 2024-03-18, the Document has been moved to doris-website. |
917e3ba to
7cb2b14
Compare
|
run buildall |
TPC-H: Total hot run time: 40420 ms |
TPC-DS: Total hot run time: 174668 ms |
ClickBench: Total hot run time: 30.26 s |
c814ff0 to
f1b0fe6
Compare
f1b0fe6 to
c1cd82e
Compare
|
run buildall |
| // - base table and tablets' number is small enough (< paraInstanceNum) | ||
| // otherSide: | ||
| // - ShuffleType.EXECUTION_BUCKETED | ||
| boolean isBucketShuffleDownGrade = ConnectContext.get().getSessionVariable().isEnableBucketShuffleJoin(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
when enableBucketShuffleJoin = false, we should never do bucket shuffle at all. so when isEnableBucketShuffleJoin = false, function isBucketShuffleDownGrade should always return true?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
forget to change the name, isBucketShuffleDownGrade should be isEnableBucketShuffle.
fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java
Show resolved
Hide resolved
|
run buildall |
TPC-H: Total hot run time: 39526 ms |
TPC-DS: Total hot run time: 173632 ms |
ClickBench: Total hot run time: 30.81 s |
|
run buildall |
TPC-H: Total hot run time: 40326 ms |
TPC-DS: Total hot run time: 173538 ms |
ClickBench: Total hot run time: 30.67 s |
|
run buildall |
75daeb8 to
21b461a
Compare
|
run buildall |
TPC-H: Total hot run time: 39733 ms |
TPC-DS: Total hot run time: 174220 ms |
ClickBench: Total hot run time: 31 s |
|
run buildall |
ae9d72a to
0adcecb
Compare
|
run buildall |
TPC-H: Total hot run time: 40099 ms |
4303423 to
450f4c6
Compare
|
run buildall |
TPC-H: Total hot run time: 40177 ms |
TPC-DS: Total hot run time: 172242 ms |
ClickBench: Total hot run time: 30.18 s |
|
run feut |
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
1. Recover adoptive bucket shuffle and re-using the enable_bucket_shuffle_join to control whether to enable it, default remains true. 2. Remove enable_bucket_shuffle_downgrade option. Co-authored-by: zhongjian.xzj <zhongjian.xzj@zhongjianxzjdeMacBook-Pro.local>
## Proposed changes pick from #36784 Co-authored-by: xiongzhongjian <xiongzhongjian@selectdb.com>
|
need merge to 2.1 because some USER need it |
…le side (#59506) Related PR: #36784 This pull request refactors the logic in the `visitPhysicalHashJoin` method to improve the handling and enforcement of bucket shuffle join strategies in the Nereids planner. It introduces new checks and flags to more accurately determine when bucket shuffle downgrades are needed, and updates the plan output to reflect the use of `bucketShuffle` joins in various TPC-DS queries. Key changes include: ### Planner logic improvements * Added `shouldCheckLeftBucketDownGrade` and `shouldCheckrightBucketDownGrade` flags to control when to check for bucket shuffle downgrades, leading to more precise enforcement of shuffle strategies. * Refactored conditional logic to use these new flags, replacing previous direct downgrade checks, and improved the handling of cases where shuffle key orders do not match. These changes enhance the accuracy and efficiency of join planning in distributed query execution.
…le side (apache#59506) Related PR: apache#36784 This pull request refactors the logic in the `visitPhysicalHashJoin` method to improve the handling and enforcement of bucket shuffle join strategies in the Nereids planner. It introduces new checks and flags to more accurately determine when bucket shuffle downgrades are needed, and updates the plan output to reflect the use of `bucketShuffle` joins in various TPC-DS queries. Key changes include: ### Planner logic improvements * Added `shouldCheckLeftBucketDownGrade` and `shouldCheckrightBucketDownGrade` flags to control when to check for bucket shuffle downgrades, leading to more precise enforcement of shuffle strategies. * Refactored conditional logic to use these new flags, replacing previous direct downgrade checks, and improved the handling of cases where shuffle key orders do not match. These changes enhance the accuracy and efficiency of join planning in distributed query execution.
Proposed changes