-
Notifications
You must be signed in to change notification settings - Fork 263
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
feat: enable ray by default #787
Conversation
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
Currently, the optimizer rule for ray does not work for UDFs in the projection's target list. So only the following two notebooks uses ray. Their results look expected. The reason is that LogicalGetToSeqScan for ray does not make sense, since function expressions are in the LogicalProject instead of Logical Get. We need to create a LogicalProjectToPhysical for ray. |
@gaurav274 @jiashenC Any idea, why we have the ray skip tag for chatgpt test cases? Also, this seems to be unit test cases instead of integration test cases. |
It is a unit test because of the missing |
@jiashenC testcases are failing because of the coverage issue, right? |
Yes, we probably still need to have a separate ray testing without generating coverage reports. Otherwise, it will cause timeout issue because of too many coverage trace to parse which are generated by many ray processes. |
@@ -87,45 +86,39 @@ def apply(self, before: LogicalApplyAndMerge, context: OptimizerContext): | |||
yield exchange_plan | |||
|
|||
|
|||
class LogicalGetToSeqScan(Rule): | |||
class LogicalProjectToPhysical(Rule): |
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.
Just double check, so we won't get any functional expression in the SeqScan operator anymore?
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.
Yes. It seems that the current statement to operator generation always creates a project operator.
We can get rid of |
It is pending on local also, after all testcases are completed before the coverage report is generated. It seems that there may be some ray related resources are not correctly garbage cleaned. |
Make sense. We should get rid of it. Will do. |
Update:
|
This pr intends to enable ray by default in EVA. - [x] Ray is enabled by default in eva server, test cases, notebooks - [x] Remove experimental code directory - [ ] ~~Introduce a new UDF decorator `parralizable` and uses it in the optimizer to filter out inexpensive functions.~~ - This is not possible now. We need UDF decorator to be associated with the class instead of the setup function, so we can get the UDF properties without initializing the UDF.
This pr intends to enable ray by default in EVA.
Introduce a new UDF decoratorparralizable
and uses it in the optimizer to filter out inexpensive functions.