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,

Reply via email to