You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by kx...@apache.org on 2023/07/04 14:43:51 UTC
[doris] 03/15: [Performance](Nereids) refactor code speedup analyze (#21458)
This is an automated email from the ASF dual-hosted git repository.
kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
commit 4db85ca3a158122fa252101a20f4ef8c2d0379a3
Author: jakevin <ja...@gmail.com>
AuthorDate: Tue Jul 4 10:59:07 2023 +0800
[Performance](Nereids) refactor code speedup analyze (#21458)
refactor those code which cost much time.
---
.../apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java | 2 +-
.../java/org/apache/doris/nereids/minidump/NereidsTracer.java | 7 ++++---
.../doris/nereids/properties/ChildrenPropertiesRegulator.java | 2 +-
.../doris/nereids/properties/EnforceMissingPropertiesHelper.java | 2 +-
.../src/main/java/org/apache/doris/statistics/Statistics.java | 8 +++++---
5 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java
index f6ae1d6879..d8e79bd80f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java
@@ -317,7 +317,7 @@ public class CostAndEnforcerJob extends Job implements Cloneable {
groupExpression.putOutputPropertiesMap(outputProperty, requestProperty);
}
this.groupExpression.getOwnerGroup().setBestPlan(groupExpression, curTotalCost, requestProperty);
- NereidsTracer.logPropertyAndCostEvent(groupExpression.getOwnerGroup().getGroupId().toString(),
+ NereidsTracer.logPropertyAndCostEvent(groupExpression.getOwnerGroup().getGroupId(),
groupExpression.children(), groupExpression.getPlan(), requestProperty, curTotalCost);
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/minidump/NereidsTracer.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/minidump/NereidsTracer.java
index 80101dd750..b1ba66ced2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/minidump/NereidsTracer.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/minidump/NereidsTracer.java
@@ -21,6 +21,7 @@ import org.apache.doris.common.util.DebugUtil;
import org.apache.doris.common.util.TimeUtils;
import org.apache.doris.nereids.cost.Cost;
import org.apache.doris.nereids.memo.Group;
+import org.apache.doris.nereids.memo.GroupId;
import org.apache.doris.nereids.pattern.Pattern;
import org.apache.doris.nereids.properties.PhysicalProperties;
import org.apache.doris.nereids.trees.plans.AbstractPlan;
@@ -99,7 +100,7 @@ public class NereidsTracer {
/** log property and cost pair when doing cost and enforcer task */
public static void logPropertyAndCostEvent(
- String groupId, List<Group> children, Plan plan, PhysicalProperties requestProperty, Cost cost) {
+ GroupId groupId, List<Group> children, Plan plan, PhysicalProperties requestProperty, Cost cost) {
if (!shouldLog) {
return;
}
@@ -120,13 +121,13 @@ public class NereidsTracer {
/** log enforcer event when we need to add enforcer */
public static void logEnforcerEvent(
- String groupId, Plan plan, PhysicalProperties inputProperty, PhysicalProperties outputProperty) {
+ GroupId groupId, Plan plan, PhysicalProperties inputProperty, PhysicalProperties outputProperty) {
if (!shouldLog) {
return;
}
JSONObject enforcerEventJson = new JSONObject();
JSONObject enforcerMsg = new JSONObject();
- enforcerMsg.put("GroupId", groupId);
+ enforcerMsg.put("GroupId", groupId.toString());
enforcerMsg.put("Plan", ((AbstractPlan) plan).toJson());
enforcerMsg.put("InputProperty", inputProperty.toString());
enforcerMsg.put("OutputProperty", outputProperty.toString());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java
index 862dbb5e2b..bb5ce1eec6 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java
@@ -90,7 +90,7 @@ public class ChildrenPropertiesRegulator extends PlanVisitor<Boolean, Void> {
@Override
public Boolean visitPhysicalHashJoin(PhysicalHashJoin<? extends Plan, ? extends Plan> hashJoin,
Void context) {
- Preconditions.checkArgument(children.size() == 2, String.format("children.size() is %d", children.size()));
+ Preconditions.checkArgument(children.size() == 2, "children.size() != 2");
Preconditions.checkArgument(childrenProperties.size() == 2);
Preconditions.checkArgument(requiredProperties.size() == 2);
DistributionSpec leftDistributionSpec = childrenProperties.get(0).getDistributionSpec();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/EnforceMissingPropertiesHelper.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/EnforceMissingPropertiesHelper.java
index 146b165d68..bcbfffc0e7 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/EnforceMissingPropertiesHelper.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/properties/EnforceMissingPropertiesHelper.java
@@ -150,7 +150,7 @@ public class EnforceMissingPropertiesHelper {
PhysicalProperties oldOutputProperty,
PhysicalProperties newOutputProperty) {
context.getCascadesContext().getMemo().addEnforcerPlan(enforcer, groupExpression.getOwnerGroup());
- NereidsTracer.logEnforcerEvent(enforcer.getOwnerGroup().getGroupId().toString(), groupExpression.getPlan(),
+ NereidsTracer.logEnforcerEvent(enforcer.getOwnerGroup().getGroupId(), groupExpression.getPlan(),
oldOutputProperty, newOutputProperty);
ENFORCER_TRACER.log(EnforcerEvent.of(groupExpression, ((PhysicalPlan) enforcer.getPlan()),
oldOutputProperty, newOutputProperty));
diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/Statistics.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/Statistics.java
index ff889d3edc..cf92df9362 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/Statistics.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/Statistics.java
@@ -151,9 +151,11 @@ public class Statistics {
private double computeTupleSize() {
if (tupleSize <= 0) {
- tupleSize = expressionToColumnStats.values().stream()
- .map(s -> s.avgSizeByte).reduce(0D, Double::sum);
- tupleSize = Math.max(1, tupleSize);
+ double tempSize = 0.0;
+ for (ColumnStatistic s : expressionToColumnStats.values()) {
+ tempSize += s.avgSizeByte;
+ }
+ tupleSize = Math.max(1, tempSize);
}
return tupleSize;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org