Re: Question Regarding Volcano Planner

2022-08-29 Thread Roman Kondakov

Hello Pranav,

you also can split your optimization process into several steps. For 
example you can add a heuristic phase (using HEP planner) before Volcano 
planning with filters pushdown. It is almost always a beneficial 
operation so you can avoid polluting search space with plans that are 
known to be not very good in advance.


You can find examples of optimization phases here [1]

[1] 
https://github.com/apache/drill/blob/master/exec/java-exec/src/main/java/org/apache/drill/exec/planner/PlannerPhase.java


Thanks,

Roman

On 29.08.2022 03:54, Haisheng Yuan wrote:

You need to first investigate whether the transformation rules or operators are 
correctly implemented or not. Typically there is a bug if you see the planner 
fails to terminate.

There is cancelFlag variable and checkCancel() method in VolcanoPlanner.
You can pass your own CancelFlag implementation to Context when constructing 
planner [1] so that you can interrupt the planning when it times out or the 
cost the greater or lower than some threshold.

[1] 
https://github.com/apache/calcite/blob/e2f949d5d6cff79cbe8565bc3e85f437dee9fd7e/core/src/main/java/org/apache/calcite/plan/AbstractRelOptPlanner.java#L102

On 2022/08/26 20:29:15 Pranav Deshpande wrote:

Dear Apache Calcite Dev Team,
Sometimes my volcano planner fails to terminate because there are many
plans to search for (millions of them).

Is there a way to prune the search if a specific amount of time has elapsed
or if the same net cost is obtained for the Xth time, etc.

Requesting the community's guidance on this.

Thanks & Regards,
Pranav



Re: Question Regarding Volcano Planner

2022-08-28 Thread Haisheng Yuan
You need to first investigate whether the transformation rules or operators are 
correctly implemented or not. Typically there is a bug if you see the planner 
fails to terminate.

There is cancelFlag variable and checkCancel() method in VolcanoPlanner.
You can pass your own CancelFlag implementation to Context when constructing 
planner [1] so that you can interrupt the planning when it times out or the 
cost the greater or lower than some threshold.

[1] 
https://github.com/apache/calcite/blob/e2f949d5d6cff79cbe8565bc3e85f437dee9fd7e/core/src/main/java/org/apache/calcite/plan/AbstractRelOptPlanner.java#L102

On 2022/08/26 20:29:15 Pranav Deshpande wrote:
> Dear Apache Calcite Dev Team,
> Sometimes my volcano planner fails to terminate because there are many
> plans to search for (millions of them).
> 
> Is there a way to prune the search if a specific amount of time has elapsed
> or if the same net cost is obtained for the Xth time, etc.
> 
> Requesting the community's guidance on this.
> 
> Thanks & Regards,
> Pranav
>