[ https://issues.apache.org/jira/browse/DRILL-6830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16676479#comment-16676479 ]
ASF GitHub Bot commented on DRILL-6830: --------------------------------------- lushuifeng commented on a change in pull request #1524: DRILL-6830: Remove Hook.REL_BUILDER_SIMPLIFY handler after use URL: https://github.com/apache/drill/pull/1524#discussion_r231061174 ########## File path: exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/SqlConverter.java ########## @@ -377,11 +377,15 @@ public RelRoot toRel(final SqlNode validatedNode) { * during creating new projects since it may cause changing data mode * which causes to assertion errors during type validation */ - Hook.REL_BUILDER_SIMPLIFY.add(Hook.propertyJ(false)); + Hook.Closeable closeable = Hook.REL_BUILDER_SIMPLIFY.add(Hook.propertyJ(false)); - //To avoid unexpected column errors set a value of top to false - final RelRoot rel = sqlToRelConverter.convertQuery(validatedNode, false, false); - return rel.withRel(sqlToRelConverter.flattenTypes(rel.rel, true)); + try { + //To avoid unexpected column errors set a value of top to false + final RelRoot rel = sqlToRelConverter.convertQuery(validatedNode, false, false); + return rel.withRel(sqlToRelConverter.flattenTypes(rel.rel, true)); + } finally { + closeable.close(); Review comment: fixed and squashed ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Hook.REL_BUILDER_SIMPLIFY handler didn't removed cause performance degression > ----------------------------------------------------------------------------- > > Key: DRILL-6830 > URL: https://issues.apache.org/jira/browse/DRILL-6830 > Project: Apache Drill > Issue Type: Bug > Components: Query Planning & Optimization > Affects Versions: 1.14.0 > Reporter: shuifeng lu > Assignee: shuifeng lu > Priority: Major > Attachments: Screen Shot 2018-11-06 at 16.14.16.png > > > Planning performance degression has been observed that the duration of > planning increased from 30ms to 160ms after running drill a long period of > time(say a month). > RelBuilder.simplify never becomes true if Hook.REL_BUILDER_SIMPLIFY handlers > are not removed. > Here is some clue (after running 40 days): > Hook.get takes 8ms per-invocation, it may be called serveral times per query. > ---[8.816063ms] org.apache.calcite.tools.RelBuilder:<init>() > +---[0.020218ms] java.util.ArrayDeque:<init>() > +---[0.018493ms] java.lang.Boolean:valueOf() > +---[8.341566ms] org.apache.calcite.runtime.Hook:get() > +---[0.008489ms] java.lang.Boolean:booleanValue() > +---[min=5.21E-4ms,max=0.015832ms,total=0.025233ms,count=12] > org.apache.calcite.plan.Context:unwrap() > +---[min=3.83E-4ms,max=0.009494ms,total=0.014516ms,count=13] > org.apache.calcite.util.Util:first() > +---[0.006892ms] org.apache.calcite.plan.RelOptCluster:getPlanner() > +---[0.009104ms] org.apache.calcite.plan.RelOptPlanner:getExecutor() > +---[min=4.8E-4ms,max=0.002277ms,total=0.002757ms,count=2] > org.apache.calcite.plan.RelOptCluster:getRexBuilder() > ---[min=4.91E-4ms,max=0.004586ms,total=0.005077ms,count=2] > org.apache.calcite.rex.RexSimplify:<init>() > The top instances in JVM > num #instances #bytes class name > ---------------------------------------------- > 1: 116333 116250440 [B > 2: 890126 105084536 [C > 3: 338062 37415944 [Ljava.lang.Object; > 4: 1715004 27440064 org.apache.calcite.runtime.Hook$4 > 5: 803909 19293816 java.lang.String > !Screen Shot 2018-11-06 at 16.14.16.png! -- This message was sent by Atlassian JIRA (v7.6.3#76005)