This is an automated email from the ASF dual-hosted git repository.
alsuliman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
The following commit(s) were added to refs/heads/master by this push:
new 1ef11c1f60 [ASTERIXDB-3046][COMP] Change some CBO trace loggings
1ef11c1f60 is described below
commit 1ef11c1f60d6e3376d39743f630964be4a015895
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]>
---
.../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);