This is an automated email from the ASF dual-hosted git repository. Wei-hao-Li pushed a commit to branch deviceEntryTest in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 09e0b878928a451ed0fda646311312fe16a12868 Author: Weihao Li <[email protected]> AuthorDate: Tue Sep 8 16:09:51 2026 +0800 add metric for test Signed-off-by: Weihao Li <[email protected]> --- .../apache/iotdb/db/queryengine/common/MPPQueryContext.java | 13 +++++++++++++ .../statistics/FragmentInstanceStatisticsDrawer.java | 5 +++++ 2 files changed, 18 insertions(+) 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 16c31d5b2f7..d00bd998989 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 @@ -155,6 +155,9 @@ public class MPPQueryContext implements IAuditEntity { private boolean reservingMemoryForSchemaTree = false; + private long frontEndMemoryBytes = 0; + private long peakFrontEndMemoryBytes = 0; + private boolean resultSetColumnMemoryTrackingEnabled = false; private boolean alignByDeviceForResultSetColumnTracking = false; private long seriesLimitForResultSetColumnTracking = 0; @@ -271,6 +274,7 @@ public class MPPQueryContext implements IAuditEntity { return; } this.memoryReservationManager.releaseMemoryCumulatively(reservedMemoryCostForSchemaTree); + frontEndMemoryBytes -= reservedMemoryCostForSchemaTree; reservedMemoryCostForSchemaTree = 0; } @@ -653,6 +657,8 @@ public class MPPQueryContext implements IAuditEntity { public void reserveMemoryForFrontEnd(final long bytes) { try { this.memoryReservationManager.reserveMemoryCumulatively(bytes); + frontEndMemoryBytes += bytes; + peakFrontEndMemoryBytes = Math.max(peakFrontEndMemoryBytes, frontEndMemoryBytes); } catch (MemoryNotEnoughException e) { if (reservingMemoryForSchemaTree) { throw e; @@ -674,10 +680,17 @@ public class MPPQueryContext implements IAuditEntity { public void releaseAllMemoryReservedForFrontEnd() { this.memoryReservationManager.releaseAllReservedMemory(); + frontEndMemoryBytes = 0; + reservedMemoryCostForSchemaTree = 0; } public void releaseMemoryReservedForFrontEnd(final long bytes) { this.memoryReservationManager.releaseMemoryCumulatively(bytes); + frontEndMemoryBytes -= bytes; + } + + public long getPeakFrontEndMemoryBytes() { + return peakFrontEndMemoryBytes; } public void initResultSetColumnMemoryTracking( diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java index e4e4d406f2b..293a37e0d94 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java @@ -82,6 +82,11 @@ public class FragmentInstanceStatisticsDrawer { String.format( "Distribution Plan Cost: %.3f ms", context.getDistributionPlanCost() * NS_TO_MS_FACTOR)); + addLine( + planHeader, + 0, + String.format( + "Coordinator FE Peak Memory: %d bytes", context.getPeakFrontEndMemoryBytes())); addLine( planHeader, 1,
