This is an automated email from the ASF dual-hosted git repository. mblow pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 53003d10b892e51aca9ce1e0ca2b5fc33a4be44b Author: Ali Alsuliman <[email protected]> AuthorDate: Mon Sep 19 17:44:47 2022 -0700 [ASTERIXDB-3046][COMP] Change some CBO trace loggings - user model changes: no - storage format changes: no - interface changes: no Change-Id: Ib34c4f1cb9da24f834f886c55639fe062f920a6e Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17232 Tested-by: Jenkins <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> Reviewed-by: Vijay Sarathy <[email protected]> Reviewed-by: Wail Alkowaileet <[email protected]> Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17333 Reviewed-by: Michael Blow <[email protected]> Tested-by: Michael Blow <[email protected]> --- .../optimizer/rules/cbo/EnumerateJoinsRule.java | 4 +--- .../apache/asterix/optimizer/rules/cbo/JoinEnum.java | 18 ++++++++++-------- .../apache/asterix/optimizer/rules/cbo/JoinNode.java | 19 +++---------------- .../LogicalOperatorPrettyPrintVisitorJson.java | 4 +--- 4 files changed, 15 insertions(+), 30 deletions(-) diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java index de28bbcd8f..4a37007856 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java @@ -431,11 +431,9 @@ public class EnumerateJoinsRule implements IAlgebraicRewriteRule { public static void printPlan(IPlanPrettyPrinter pp, AbstractLogicalOperator op, String text) throws AlgebricksException { if (LOGGER.isTraceEnabled()) { - LOGGER.trace("---------------------------- " + text); pp.reset(); pp.printOperator(op, true); - LOGGER.trace(pp); - LOGGER.trace("---------------------------- "); + LOGGER.trace("---------------------------- {}\n{}\n----------------------------", text, pp); } } diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java index 24509c296c..306bad91ad 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java @@ -742,27 +742,29 @@ public class JoinEnum { JoinNode lastJn = jnArray[lastJnNum]; if (LOGGER.isTraceEnabled()) { EnumerateJoinsRule.printPlan(pp, op, "Original Whole plan in JN END"); - dumpJoinNodes(lastJnNum); + LOGGER.trace(dumpJoinNodes(lastJnNum)); } // find the cheapest plan int cheapestPlanIndex = lastJn.cheapestPlanIndex; if (LOGGER.isTraceEnabled() && cheapestPlanIndex > 0) { - LOGGER.trace("Cheapest Plan is " + cheapestPlanIndex + " number of terms is " + numberOfTerms - + " joinNodes " + lastJnNum); + LOGGER.trace("Cheapest Plan is {} number of terms is {} joinNodes {}", cheapestPlanIndex, numberOfTerms, + lastJnNum); } return cheapestPlanIndex; } - private void dumpJoinNodes(int numJoinNodes) { - LOGGER.trace(LocalDateTime.now()); + private String dumpJoinNodes(int numJoinNodes) { + StringBuilder sb = new StringBuilder(128); + sb.append(LocalDateTime.now()); for (int i = 1; i <= numJoinNodes; i++) { JoinNode jn = jnArray[i]; - LOGGER.trace(jn); + sb.append(jn); } - LOGGER.trace("Printing cost of all Final Plans"); - jnArray[numJoinNodes].printCostOfAllPlans(); + sb.append('\n').append("Printing cost of all Final Plans").append('\n'); + jnArray[numJoinNodes].printCostOfAllPlans(sb); + return sb.toString(); } public static boolean getForceJoinOrderMode(IOptimizationContext context) { diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java index b0733c765f..cf4fcad0be 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java @@ -769,20 +769,6 @@ public class JoinNode { return new Pair<>(this.cheapestPlanIndex, this.cheapestPlanCost); } - protected int findCheapestPlan() { - List<PlanNode> allPlans = joinEnum.allPlans; - ICost cheapestCost = joinEnum.getCostHandle().maxCost(); - int cheapestIndex = PlanNode.NO_PLAN; - - for (int planIndex : this.planIndexesArray) { - if (allPlans.get(planIndex).totalCost.costLT(cheapestCost)) { - cheapestCost = allPlans.get(planIndex).totalCost; - cheapestIndex = planIndex; - } - } - return cheapestIndex; - } - @Override public String toString() { if (planIndexesArray.isEmpty()) { @@ -851,10 +837,11 @@ public class JoinNode { return sb.toString(); } - public void printCostOfAllPlans() { + public void printCostOfAllPlans(StringBuilder sb) { List<PlanNode> allPlans = joinEnum.allPlans; for (int planIndex : planIndexesArray) { - LOGGER.trace("plan " + planIndex + " cost is " + allPlans.get(planIndex).totalCost.computeTotalCost()); + sb.append("plan ").append(planIndex).append(" cost is ") + .append(allPlans.get(planIndex).totalCost.computeTotalCost()).append('\n'); } } } diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java index 64aa2e0fdc..cf96c8397a 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java @@ -99,7 +99,6 @@ public class LogicalOperatorPrettyPrintVisitorJson extends AbstractLogicalOperat private static final String CONDITION_FIELD = "condition"; private static final String MISSING_VALUE_FIELD = "missing-value"; private static final String OP_CARDINALITY = "cardinality"; - private static final String OP_COST = "cost"; private final Map<AbstractLogicalOperator, String> operatorIdentity = new HashMap<>(); private final IdCounter idCounter = new IdCounter(); @@ -142,8 +141,7 @@ public class LogicalOperatorPrettyPrintVisitorJson extends AbstractLogicalOperat stringPrefix = stringPrefix.isEmpty() ? val.toString() : stringPrefix + "." + val.toString(); } if (!operatorIdentity.containsKey(op)) { - String opId = stringPrefix.isEmpty() ? "" + Integer.toString(++id) - : stringPrefix + "." + Integer.toString(++id); + String opId = stringPrefix.isEmpty() ? "" + (++id) : stringPrefix + "." + (++id); operatorIdentity.put(op, opId); } return operatorIdentity.get(op);
