Repository: asterixdb Updated Branches: refs/heads/master e99f652e7 -> 1cd58bced
[NO ISSUE] Refactoring plan optimization method - user model changes: no - storage format changes: no - interface changes: no Details: - Refactoring plan optimization method. Change-Id: I8275bca00b41969444824cffd12f542d802bf26f Reviewed-on: https://asterix-gerrit.ics.uci.edu/3101 Sonar-Qube: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Contrib: Jenkins <[email protected]> Integration-Tests: Jenkins <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/1cd58bce Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/1cd58bce Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/1cd58bce Branch: refs/heads/master Commit: 1cd58bcedc71c1eb55ff483ff91fe3676e0f7090 Parents: e99f652 Author: Hussain Towaileb <[email protected]> Authored: Sat Dec 29 12:55:54 2018 +0300 Committer: Hussain Towaileb <[email protected]> Committed: Sun Dec 30 22:45:41 2018 -0800 ---------------------------------------------------------------------- .../core/rewriter/base/HeuristicOptimizer.java | 32 ++++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1cd58bce/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java ---------------------------------------------------------------------- diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java index a2a0ca1..2aacc0e 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java @@ -74,15 +74,12 @@ public class HeuristicOptimizer { if (plan == null) { return; } - if (AlgebricksConfig.ALGEBRICKS_LOGGER.isTraceEnabled()) { - AlgebricksConfig.ALGEBRICKS_LOGGER.trace("Starting logical optimizations.\n"); - } - logPlanAt("Logical Plan", Level.TRACE); - runOptimizationSets(plan, logicalRewrites); + logPlanAt("Plan Before Optimization", Level.TRACE); + runLogicalOptimizationSets(plan, logicalRewrites); computeSchemaBottomUpForPlan(plan); - runPhysicalOptimizations(plan, physicalRewrites); - logPlanAt("Optimized Plan", Level.TRACE); + runPhysicalOptimizationSets(plan, physicalRewrites); + logPlanAt("Plan After Optimization", Level.TRACE); } private void logPlanAt(String name, Level lvl) throws AlgebricksException { @@ -94,9 +91,19 @@ public class HeuristicOptimizer { } } + private void runLogicalOptimizationSets(ILogicalPlan plan, + List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> optimizationSet) + throws AlgebricksException { + if (AlgebricksConfig.ALGEBRICKS_LOGGER.isTraceEnabled()) { + AlgebricksConfig.ALGEBRICKS_LOGGER.trace("Starting logical optimizations.\n"); + } + runOptimizationSets(plan, optimizationSet); + } + private void runOptimizationSets(ILogicalPlan plan, - List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> optimSet) throws AlgebricksException { - for (Pair<AbstractRuleController, List<IAlgebraicRewriteRule>> ruleList : optimSet) { + List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> optimizationSet) + throws AlgebricksException { + for (Pair<AbstractRuleController, List<IAlgebraicRewriteRule>> ruleList : optimizationSet) { for (Mutable<ILogicalOperator> r : plan.getRoots()) { ruleList.first.setContext(context); ruleList.first.rewriteWithRuleCollection(r, ruleList.second); @@ -123,13 +130,12 @@ public class HeuristicOptimizer { op.recomputeSchema(); } - private void runPhysicalOptimizations(ILogicalPlan plan, - List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> physicalRewrites) + private void runPhysicalOptimizationSets(ILogicalPlan plan, + List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> optimizationSet) throws AlgebricksException { if (AlgebricksConfig.ALGEBRICKS_LOGGER.isTraceEnabled()) { AlgebricksConfig.ALGEBRICKS_LOGGER.trace("Starting physical optimizations.\n"); } - runOptimizationSets(plan, physicalRewrites); + runOptimizationSets(plan, optimizationSet); } - }
