You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ro...@apache.org on 2021/09/09 02:52:03 UTC
[iotdb] branch nested-operations updated: fix
updateStatisticsForMemoryAssigner
This is an automated email from the ASF dual-hosted git repository.
rong pushed a commit to branch nested-operations
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/nested-operations by this push:
new 0137667 fix updateStatisticsForMemoryAssigner
0137667 is described below
commit 013766750822ad8472eff6963f6edf462c5efc34
Author: Steve Yurong Su <ro...@apache.org>
AuthorDate: Thu Sep 9 10:50:25 2021 +0800
fix updateStatisticsForMemoryAssigner
---
.../iotdb/db/query/expression/binary/BinaryExpression.java | 5 +++--
.../iotdb/db/query/expression/unary/FunctionExpression.java | 3 ++-
.../iotdb/db/query/expression/unary/NegationExpression.java | 1 +
.../org/apache/iotdb/db/query/udf/core/layer/DAGBuilder.java | 1 -
.../iotdb/db/query/udf/core/layer/LayerMemoryAssigner.java | 9 +++++----
5 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/BinaryExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/BinaryExpression.java
index 49bbee6..0591084 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/BinaryExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/expression/binary/BinaryExpression.java
@@ -125,8 +125,9 @@ public abstract class BinaryExpression extends Expression {
@Override
public void updateStatisticsForMemoryAssigner(LayerMemoryAssigner memoryAssigner) {
- memoryAssigner.increaseExpressionReference(leftExpression);
- memoryAssigner.increaseExpressionReference(rightExpression);
+ leftExpression.updateStatisticsForMemoryAssigner(memoryAssigner);
+ rightExpression.updateStatisticsForMemoryAssigner(memoryAssigner);
+ memoryAssigner.increaseExpressionReference(this);
}
@Override
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/FunctionExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/FunctionExpression.java
index 72f64e1..da32a48 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/FunctionExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/FunctionExpression.java
@@ -176,7 +176,8 @@ public class FunctionExpression extends Expression {
@Override
public void updateStatisticsForMemoryAssigner(LayerMemoryAssigner memoryAssigner) {
for (Expression expression : expressions) {
- memoryAssigner.increaseExpressionReference(expression);
+ expression.updateStatisticsForMemoryAssigner(memoryAssigner);
+ memoryAssigner.increaseExpressionReference(this);
}
}
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/NegationExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/NegationExpression.java
index 955e2e4..9e97677 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/NegationExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/NegationExpression.java
@@ -90,6 +90,7 @@ public class NegationExpression extends Expression {
@Override
public void updateStatisticsForMemoryAssigner(LayerMemoryAssigner memoryAssigner) {
+ expression.updateStatisticsForMemoryAssigner(memoryAssigner);
memoryAssigner.increaseExpressionReference(this);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/DAGBuilder.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/DAGBuilder.java
index ca403c1..d69422a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/DAGBuilder.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/DAGBuilder.java
@@ -68,7 +68,6 @@ public class DAGBuilder {
public DAGBuilder buildLayerMemoryAssigner() {
for (Expression expression : resultColumnExpressions) {
- memoryAssigner.increaseExpressionReference(expression);
expression.updateStatisticsForMemoryAssigner(memoryAssigner);
}
memoryAssigner.build();
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/LayerMemoryAssigner.java b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/LayerMemoryAssigner.java
index afa2298..2f71b74 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/LayerMemoryAssigner.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/LayerMemoryAssigner.java
@@ -40,10 +40,11 @@ public class LayerMemoryAssigner {
}
public void increaseExpressionReference(Expression expression) {
- if (!expressionReferenceCount.containsKey(expression)) {
- expressionReferenceCount.put(expression, 1);
- }
- expressionReferenceCount.put(expression, 1 + expressionReferenceCount.get(expression));
+ expressionReferenceCount.put(
+ expression,
+ expressionReferenceCount.containsKey(expression)
+ ? 1 + expressionReferenceCount.get(expression)
+ : 1);
}
public void build() {