-
Notifications
You must be signed in to change notification settings - Fork 1.5k
feat: Add ProgressiveEval
operator
#10490
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
Conversation
@alamb : The PR is ready for review |
ProgressiveEval
operator
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.
Thank you @NGA-TRAN
What is the plan for actually using this code in DataFusion?
I am hesitant to put code in DataFusion that is not useful to other users of DataFusion as that basically adds maintenance burden to the community for no benefit.
We should at least have a plan / POC / description of how we are going to use this operator in plans.
I think perhaps we can use the code added by @suremarc in thttps://github.com//issues/7490 to determine conditions when the optimizer can use ProgressiveEval
instead of SortPreservingMerge
@alamb : My first step after this is merged in to use it in IOx. So it will be used but I understand it won't be visible to DF. Then I am happy to look into #7490 to see if there is a quick change to use |
@alamb I have just looked at the code how IOx use
This means the optimization will be fully in DF, not in IOx at all |
closing/reopening to retrigger CI checks that have gotten stuck for some reason |
@alamb and I have chatted and even though the |
Follow on / next steps here: #10316 (comment) Marking this PR as draft until someone is ready to hook it in to the optimzier |
Thank you for your contribution. Unfortunately, this pull request is stale because it has been open 60 days with no activity. Please remove the stale label or comment or this will be closed in 7 days. |
Which issue does this PR close?
Closes #10488
Rationale for this change
In InfluxDB IOx, when the inputs of
SortPreservingMerge
are all sorted on the sort key and their data do not overlap, we replaceSortPreservingMerge
withProgressiveEval
which:We wrote about using this operator here: https://www.influxdata.com/blog/making-recent-value-queries-hundreds-times-faster/
What changes are included in this PR?
Adding a new
ProgressiveEvalExec
Are these changes tested?
Yes, unit tests
Are there any user-facing changes?
Not yet because it is not hooked in any plans yet