-
Notifications
You must be signed in to change notification settings - Fork 206
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
Support remote scan in physical plan level #1112
Labels
Comments
jiacai2050
added
A-analytic-engine
Area: Analytic Engine
A-query-engine
Area: Query engine
and removed
A-analytic-engine
Area: Analytic Engine
labels
Aug 2, 2023
ShiKaiWi
pushed a commit
that referenced
this issue
Aug 7, 2023
## Rationale Close #1136 Part of #1112 The query engine impl now is too messy, you can #1136 . Worse, it can't support physical plan's remote execution, which is necessary for #1112. In this pr, I refactor it for solving problems mentioned above. ## Detailed Changes + Split `physical plan` and `physical planner`'s trait definition and impl. + Split `physical plan`'s creation and execution. + Modify the call path for making it runable again. ## Test Plan Test by exist tests. --------- Co-authored-by: tanruixiang <tanruixiang0104@gmail.com>
Rachelint
added a commit
that referenced
this issue
Aug 17, 2023
…tioned table (#1148) ## Rationale Part of #1112 ## Detailed Changes + Define dedicated table provider for partitioned table. + Generate `UnresolvedPartitionedScan` for partitioned table rather than `ScanTable`. + Disable `UnresolvedPartitionedScan`'s generation in normal running, and just enable in unit test temporarily. ## Test Plan Test by new ut.
This was referenced Aug 21, 2023
Rachelint
added a commit
that referenced
this issue
Aug 21, 2023
…an holding it (#1163) ## Rationale Part of #1112 I found we holding the execution context in `DataFusionPhysicalPlanImpl`, rather than passing it as a param when executing like what datafusion suggests to do. It lead to problems when I plan to deserialize bytes to `DataFusionPhysicalPlanImpl`... ## Detailed Changes + Remove `SessionContext` from `DataFusionPhysicalPlanImpl`. + Pass it as a param when executing the plan. + Wrap all common part to `DfContextBuilder` and use it to build `SessionContext` in `DatafusionExecutorImpl` and `DatafusionPhysicalPlannerImpl`. ## Test Plan Test by exist tests.
Rachelint
added a commit
that referenced
this issue
Aug 25, 2023
…xecutable(resolving process) (#1161) ## Rationale Part of #1112 CeresDB is able to generate the specific physical plan for partitioned table in #1148, but it is inexecutable. This pr introduce the `resolver` to make it executable. ## Detailed Changes + Add `Resolver` to convert the `UnresolvePartitionedScan` to final executable scan plans of sub tables. + Add test for the resolving process. ## Test Plan Test by new ut.
Rachelint
added a commit
that referenced
this issue
Aug 29, 2023
## Rationale Part of #1112 If we want to send plan to remote, we must encode it first. ## Detailed Changes + Impl extension codec of dist_sql_query related physical plans. + Remove the useless `PhysicalPlanCodec` and its impl. + Refactor the pb converting about `ReadRequest`. ## Test Plan Test by new ut.
ShiKaiWi
pushed a commit
that referenced
this issue
Sep 8, 2023
## Rationale Part of #1112 The old resolver has some problems, need to refactor before adding it into the main query process. ## Detailed Changes + Refactor `Resolver` in dist sql query. ## Test Plan Test by richer unit tests.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Describe This Problem
As the first step of #1108 , I prefer to refactor our impl for remote scanning.The refactor maybe includes following domain:
RemoteEngine
able to execute physical plan in remote nodes.Proposal
UnresolvedPartitionedScan
,ResolvedPartitionedScan
,UnresolvedSubTableScan
,ResolvedSubTableScan
.UnresolvedPartitionedScan
when scan partitioned table.TableProviderAdapter
forPartitionedTable
.TableProviderAdapter
(according to ifPartitionInfo
exists).Resolver
to convertUnresolvedPartitionedScan
toResolvedPartitionedScan
.UnresolvedSubTableScan
to remote and use theSubTableScanExecutor
to run it.Additional Context
Some possible optimizations:
ResolvedPartitionedScan
directly rather than generatingUnresolvedPartitionedScan
?UnresolvedPartitionedScan
?Communication between remote plan execution client side and server side.
No response
The text was updated successfully, but these errors were encountered: