diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java index 9d865e0a624e..26dd1f6a0978 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java @@ -85,7 +85,7 @@ public MPPQueryContext(QueryId queryId) { this.queryId = queryId; this.endPointBlackList = new LinkedList<>(); this.memoryReservationContext = - new UnsynchronizedMemoryReservationContext(queryId, "MPPQueryContext"); + new UnsynchronizedMemoryReservationContext(queryId, this.getClass().getName()); } // TODO too many callers just pass a null SessionInfo which should be forbidden @@ -318,7 +318,7 @@ public void releaseAllMemoryReservedForFrontEnd() { this.memoryReservationContext.releaseAllReservedMemory(); } - public void releaseAllMemoryReservedForFrontEnd(final long bytes) { + public void releaseMemoryReservedForFrontEnd(final long bytes) { this.memoryReservationContext.releaseMemoryAccumulatively(bytes); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java index 152daa8bd422..a9d92cc2b80c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java @@ -29,7 +29,7 @@ import org.apache.iotdb.db.queryengine.metric.QueryRelatedResourceMetricSet; import org.apache.iotdb.db.queryengine.metric.SeriesScanCostMetricSet; import org.apache.iotdb.db.queryengine.plan.planner.memory.MemoryReservationContext; -import org.apache.iotdb.db.queryengine.plan.planner.memory.UnsynchronizedMemoryReservationContext; +import org.apache.iotdb.db.queryengine.plan.planner.memory.SynchronizedMemoryReservationContext; import org.apache.iotdb.db.queryengine.plan.planner.plan.TimePredicate; import org.apache.iotdb.db.storageengine.dataregion.IDataRegionForQuery; import org.apache.iotdb.db.storageengine.dataregion.read.IQueryDataSource; @@ -198,7 +198,7 @@ private FragmentInstanceContext( this.dataNodeQueryContextMap = dataNodeQueryContextMap; this.dataNodeQueryContext = dataNodeQueryContextMap.get(id.getQueryId()); this.memoryReservationContext = - new UnsynchronizedMemoryReservationContext(id.getQueryId(), "FragmentInstanceContext"); + new SynchronizedMemoryReservationContext(id.getQueryId(), this.getClass().getName()); } private FragmentInstanceContext( @@ -210,7 +210,7 @@ private FragmentInstanceContext( this.dataNodeQueryContextMap = null; this.dataNodeQueryContext = null; this.memoryReservationContext = - new UnsynchronizedMemoryReservationContext(id.getQueryId(), "FragmentInstanceContext"); + new SynchronizedMemoryReservationContext(id.getQueryId(), this.getClass().getName()); } private FragmentInstanceContext( @@ -227,7 +227,7 @@ private FragmentInstanceContext( this.globalTimeFilter = globalTimeFilter; this.dataNodeQueryContextMap = null; this.memoryReservationContext = - new UnsynchronizedMemoryReservationContext(id.getQueryId(), "FragmentInstanceContext"); + new SynchronizedMemoryReservationContext(id.getQueryId(), this.getClass().getName()); } @TestOnly diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/AggregationPushDown.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/AggregationPushDown.java index 3e71b5822876..a8b01ef6a84d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/AggregationPushDown.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/optimization/AggregationPushDown.java @@ -676,7 +676,7 @@ public Set getAggregationExpressions() { } public void releaseMemoryForFrontEnd(final long bytes) { - this.context.releaseAllMemoryReservedForFrontEnd(bytes); + this.context.releaseMemoryReservedForFrontEnd(bytes); } } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/UnsynchronizedMemoryReservationContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/UnsynchronizedMemoryReservationContext.java index 4a67bb13f542..aedae268ddac 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/UnsynchronizedMemoryReservationContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/memory/UnsynchronizedMemoryReservationContext.java @@ -46,8 +46,8 @@ public UnsynchronizedMemoryReservationContext(final QueryId queryId, final Strin @Override public void reserveMemoryAccumulatively(final long size) { - this.bytesToBeReserved += size; - if (this.bytesToBeReserved >= MEMORY_BATCH_THRESHOLD) { + bytesToBeReserved += size; + if (bytesToBeReserved >= MEMORY_BATCH_THRESHOLD) { reserveMemoryImmediately(); } } @@ -57,25 +57,25 @@ public void reserveMemoryImmediately() { if (bytesToBeReserved != 0) { LOCAL_EXECUTION_PLANNER.reserveFromFreeMemoryForOperators( bytesToBeReserved, reservedBytesInTotal, queryId.getId(), contextHolder); - this.reservedBytesInTotal += bytesToBeReserved; - this.bytesToBeReserved = 0; + reservedBytesInTotal += bytesToBeReserved; + bytesToBeReserved = 0; } } @Override public void releaseMemoryAccumulatively(final long size) { - this.bytesToBeReleased += size; + bytesToBeReleased += size; if (bytesToBeReleased >= MEMORY_BATCH_THRESHOLD) { long bytesToRelease; - if (this.bytesToBeReleased <= bytesToBeReserved) { - bytesToBeReserved -= this.bytesToBeReleased; + if (bytesToBeReleased <= bytesToBeReserved) { + bytesToBeReserved -= bytesToBeReleased; } else { - bytesToRelease = this.bytesToBeReleased - bytesToBeReserved; + bytesToRelease = bytesToBeReleased - bytesToBeReserved; bytesToBeReserved = 0; LOCAL_EXECUTION_PLANNER.releaseToFreeMemoryForOperators(bytesToRelease); reservedBytesInTotal -= bytesToRelease; } - this.bytesToBeReleased = 0; + bytesToBeReleased = 0; } }