You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shardingsphere.apache.org by 蒋晓峰 <th...@gmail.com> on 2020/05/18 12:44:25 UTC

Discuss about shardingsphere-query-optimizer module

Hi Community,
  Module `shardingsphere-query-optimizer` is designed to process SQL Query
Optimizer. I prefer use Apache Calcite to recognize SQL like subquery, join
query cross actual databases, etc. which couldn't execute to databases
directly. Common optimization rules include Predicate Pushdown, Constant
Folding, and Column Pruning etc. which have implementation in HepPlanner
and VolcanoPlanner of Calcite. In my opinion,
`shardingsphere-query-optimizer` module could be one of task topics for
'Open Source Promotion Plan - Summer 2020', which includes tasks for reuse
optimization rules of HepPlanner and VolcanoPlanner to optimize partial SQL
in ShardingSphere for performance improvement. Through previous experience
using Calcite with Flink SQL, I'd like to support
`shardingsphere-query-optimizer` module, welcome anyone to work on this
module together.

Thanks,
Nicholas Jiang

Re: Discuss about shardingsphere-query-optimizer module

Posted by "zhangliang@apache.org" <zh...@apache.org>.
Yes, it is a good idea to get `shardingsphere-query-optimizer` module into
'Open Source Promotion Plan - Summer 2020', but this task is pretty
difficult for students.
We need to discuss more details about this task. I just post some questions
to make the task more clear.

1. What kind of SQL can be pushed down?
2. How to recognize the SQL pattern for pushdown SQL?
3. What is the interface to process current route module and calcite?
4. How to evaluate the performance improvement of predicate pushdown?


------------------

Liang Zhang (John)
Apache ShardingSphere & Dubbo


蒋晓峰 <th...@gmail.com> 于2020年5月18日周一 下午8:44写道:

> Hi Community,
>   Module `shardingsphere-query-optimizer` is designed to process SQL Query
> Optimizer. I prefer use Apache Calcite to recognize SQL like subquery, join
> query cross actual databases, etc. which couldn't execute to databases
> directly. Common optimization rules include Predicate Pushdown, Constant
> Folding, and Column Pruning etc. which have implementation in HepPlanner
> and VolcanoPlanner of Calcite. In my opinion,
> `shardingsphere-query-optimizer` module could be one of task topics for
> 'Open Source Promotion Plan - Summer 2020', which includes tasks for reuse
> optimization rules of HepPlanner and VolcanoPlanner to optimize partial SQL
> in ShardingSphere for performance improvement. Through previous experience
> using Calcite with Flink SQL, I'd like to support
> `shardingsphere-query-optimizer` module, welcome anyone to work on this
> module together.
>
> Thanks,
> Nicholas Jiang
>