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

Reply via email to