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
executor,planner/core,util/plancodec: extend executor.ShuffleExec and planner.core.PhysicalShuffle to support multiple data sources #20942
Conversation
No release note, Please follow https://github.com/pingcap/community/blob/master/contributors/release-note-checker.md |
@pingyu PTAL |
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.
Great job ! A small suggestion, rest LGTM.
Please fix this CI problem:
|
Rest LGTM, PTAL @huang-b |
There is no reward for this challenge pull request, so you can request a reward from @qw4990. |
/rebuild |
Already fixed. |
/run-all-tests |
/run-unit-test |
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.
LGTM
PTAL @pingyu |
/run-all-tests |
LGTM |
There is no reward for this challenge pull request, so you can request a reward from @qw4990. |
/run-all-tests |
/run-integration-compatibility-test |
What problem does this PR solve?
Issue Number: related to #14441
Problem Summary: The original implementation of shuffle is designed for Executors with single input, such as
WindowExec
. However, some Executor with multiple input also has the potential for parallel acceleration. The original implementation is not extendable for this situation.What is changed and how it works?
What's Changed
shuffleWorker
is no more an Executor and its only responsibility is to invoke the actual Executor.shuffleReceiver
implements interface of Executor and it is responsible for receiving chunks fromDataSources
.How it Works:
shuffleWorker
can has one or moreshuffleReceiver
so that it can receives data from one or moreDataSources
.Release note