This is an automated email from the ASF dual-hosted git repository. hui pushed a commit to branch lmh/AggOpMemoryControl in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit e64b5c567905c3996f44b9bd5b671e39bf8a7185 Author: Minghui Liu <[email protected]> AuthorDate: Thu Aug 11 20:27:22 2022 +0800 temp save --- .../aggregation/timerangeiterator/AggrWindowIterator.java | 5 +++++ .../aggregation/timerangeiterator/ITimeRangeIterator.java | 2 ++ .../timerangeiterator/SingleTimeWindowIterator.java | 5 +++++ .../source/AbstractSeriesAggregationScanOperator.java | 14 ++++++++++---- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/AggrWindowIterator.java b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/AggrWindowIterator.java index f27c56223c..98dd32abc0 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/AggrWindowIterator.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/AggrWindowIterator.java @@ -176,4 +176,9 @@ public class AggrWindowIterator implements ITimeRangeIterator { public long currentOutputTime() { return leftCRightO ? curTimeRange.getMin() : curTimeRange.getMax(); } + + @Override + public int getTotalTimeRangeNum() { + return 0; + } } diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/ITimeRangeIterator.java b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/ITimeRangeIterator.java index ccc999e810..76161dd684 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/ITimeRangeIterator.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/ITimeRangeIterator.java @@ -55,4 +55,6 @@ public interface ITimeRangeIterator { * @return minTime if leftCloseRightOpen, else maxTime. */ long currentOutputTime(); + + int getTotalTimeRangeNum(); } diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/SingleTimeWindowIterator.java b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/SingleTimeWindowIterator.java index b998557604..291e4f3b4a 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/SingleTimeWindowIterator.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/aggregation/timerangeiterator/SingleTimeWindowIterator.java @@ -71,4 +71,9 @@ public class SingleTimeWindowIterator implements ITimeRangeIterator { public long currentOutputTime() { return curTimeRange.getMin(); } + + @Override + public int getTotalTimeRangeNum() { + return 1; + } } diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/AbstractSeriesAggregationScanOperator.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/AbstractSeriesAggregationScanOperator.java index a88fff89d5..fee5102441 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/AbstractSeriesAggregationScanOperator.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/AbstractSeriesAggregationScanOperator.java @@ -70,6 +70,7 @@ public abstract class AbstractSeriesAggregationScanOperator implements DataSourc protected boolean finished = false; + private final long maxRetainedSize; private final long maxReturnSize; public AbstractSeriesAggregationScanOperator( @@ -96,9 +97,9 @@ public abstract class AbstractSeriesAggregationScanOperator implements DataSourc } this.resultTsBlockBuilder = new TsBlockBuilder(dataTypes); - this.maxReturnSize = - (1L + subSensorSize) * TSFileDescriptor.getInstance().getConfig().getPageSizeInByte() - + DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES; + this.maxRetainedSize = + (1L + subSensorSize) * TSFileDescriptor.getInstance().getConfig().getPageSizeInByte(); + this.maxReturnSize = DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES; } @Override @@ -118,7 +119,7 @@ public abstract class AbstractSeriesAggregationScanOperator implements DataSourc @Override public long calculateMaxPeekMemory() { - return maxReturnSize; + return maxRetainedSize + maxReturnSize; } @Override @@ -126,6 +127,11 @@ public abstract class AbstractSeriesAggregationScanOperator implements DataSourc return maxReturnSize; } + @Override + public long calculateRetainedSizeAfterCallingNext() { + return maxRetainedSize; + } + @Override public boolean hasNext() { return timeRangeIterator.hasNextTimeRange();
