Xiening Dai created CALCITE-3915: ------------------------------------ Summary: Add rule listener to report rule attempts and time at DEBUG log level Key: CALCITE-3915 URL: https://issues.apache.org/jira/browse/CALCITE-3915 Project: Calcite Issue Type: Bug Reporter: Xiening Dai
We can add a rule listener to the VolcanoPlanner for recording rule attempts and the accumulative time for the rule firing. This would be very helpful to debug planner performance issue (such as CALCITE-2970). The listener will only be added under DEBUG log level. It will produce a rule attempt summary like below - 2020-04-10 18:03:24,621 [main] DEBUG - Rules Attempts Time (us) ProjectMergeRule:force_mode 1,203 1,124,242 EnumerableProjectRule(in:NONE,out:ENUMERABLE) 129 226,475 AggregatePullUpConstantsRule 84 1,949 AggregateProjectMergeRule 81 128,575 ProjectFilterTransposeRule 76 8,734 JoinPushExpressionsRule 71 10,314 FilterJoinRule:FilterJoinRule:no-filter 71 1,306 JoinPushThroughJoinRule:right 47 676 JoinPushThroughJoinRule:left 45 175,696 FilterJoinRule:FilterJoinRule:filter 41 89,381 ReduceExpressionsRule(Filter) 24 38,128 EnumerableFilterRule(in:NONE,out:ENUMERABLE) 24 52,457 EnumerableJoinRule(in:NONE,out:ENUMERABLE) 24 71,752 EnumerableMergeJoinRule(in:NONE,out:ENUMERABLE) 24 47,987 FilterProjectTransposeRule 22 55,177 JoinCommuteRule 20 70,240 EnumerableAggregateRule(in:NONE,out:ENUMERABLE) 10 26,522 AggregateExpandDistinctAggregatesRule 10 37 EnumerableTableScanRule(in:NONE,out:ENUMERABLE) 1 527 EnumerableInterpreterRule(in:BINDABLE,out:ENUMERABLE) 1 764 BindableTableScanRule 1 1,710 ExpandConversionRule 1 175 -- This message was sent by Atlassian Jira (v8.3.4#803005)