-
Notifications
You must be signed in to change notification settings - Fork 831
scheduler: logical plan fragmenter #7018
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
base: master
Are you sure you want to change the base?
scheduler: logical plan fragmenter #7018
Conversation
Signed-off-by: rubywtl <[email protected]>
8b4f789
to
02fd607
Compare
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.
Thanks for the work. There is some room for improvement in the test but it looks good in general.
|
||
if len(fragments) > 0 { | ||
return fragments, nil | ||
} else { |
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.
Nit. You can remove this else as we already return above
|
||
require.NoError(t, err) | ||
require.Equal(t, tc.expectedFragments, len(res)) | ||
|
||
// check the metadata of the fragments of binary expressions | ||
if len(res) == 3 { |
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.
Why do we need this check? This only works for the second test case?
query: "sum(rate(http_requests_total{job=\"api\"}[5m])) + sum(rate(http_requests_total{job=\"web\"}[5m])) + sum(rate(http_requests_total{job=\"cache\"}[5m])) + sum(rate(http_requests_total{job=\"db\"}[5m]))", | ||
start: now, | ||
end: now, | ||
expectedFragments: 7, |
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.
The test should try to compare the output fragments instead of number of fragments to be safer
What this PR does:
This PR implements a logical plan fragmenter for distributed query execution. The fragmenter identifies fragments based on remote node markers in the logical plan and creates independent execution units that can be distributed across queriers. It maintains execution dependencies between parent and child fragments
Which issue(s) this PR fixes:
related to distributed query execution proposal
Checklist
CHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]