You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ca...@apache.org on 2024/07/10 14:52:31 UTC

(iotdb) branch beyyes/fix_mods_modification created (now fc5cbf6b336)

This is an automated email from the ASF dual-hosted git repository.

caogaofei pushed a change to branch beyyes/fix_mods_modification
in repository https://gitbox.apache.org/repos/asf/iotdb.git


      at fc5cbf6b336 fix modification mods in loadTimeseriesMetadata

This branch includes the following new commits:

     new fc5cbf6b336 fix modification mods in loadTimeseriesMetadata

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(iotdb) 01/01: fix modification mods in loadTimeseriesMetadata

Posted by ca...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

caogaofei pushed a commit to branch beyyes/fix_mods_modification
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit fc5cbf6b336e92a70840a7bd27848f2bc06067ef
Author: Beyyes <cg...@foxmail.com>
AuthorDate: Wed Jul 10 22:52:11 2024 +0800

    fix modification mods in loadTimeseriesMetadata
---
 .../fragment/FragmentInstanceContext.java          |  66 +++---
 .../execution/fragment/QueryStatistics.java        | 224 +++++++++++++++++----
 .../execution/operator/source/FileLoaderUtils.java |  96 +++++----
 .../execution/operator/source/SeriesScanUtil.java  |  22 +-
 .../read/reader/chunk/DiskAlignedChunkLoader.java  |   4 +-
 .../read/reader/chunk/DiskChunkLoader.java         |   4 +-
 .../read/reader/chunk/MemAlignedChunkLoader.java   |   4 +-
 .../read/reader/chunk/MemChunkLoader.java          |   4 +-
 8 files changed, 296 insertions(+), 128 deletions(-)

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 7c83518fcf0..2cd67f1321b 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
@@ -631,57 +631,57 @@ public class FragmentInstanceContext extends QueryContext {
 
     SeriesScanCostMetricSet.getInstance()
         .recordNonAlignedTimeSeriesMetadataCount(
-            getQueryStatistics().loadTimeSeriesMetadataDiskSeqCount.get(),
-            getQueryStatistics().loadTimeSeriesMetadataDiskUnSeqCount.get(),
-            getQueryStatistics().loadTimeSeriesMetadataMemSeqCount.get(),
-            getQueryStatistics().loadTimeSeriesMetadataMemUnSeqCount.get());
+            getQueryStatistics().getLoadTimeSeriesMetadataDiskSeqCount().get(),
+            getQueryStatistics().getLoadTimeSeriesMetadataDiskUnSeqCount().get(),
+            getQueryStatistics().getLoadTimeSeriesMetadataMemSeqCount().get(),
+            getQueryStatistics().getLoadTimeSeriesMetadataMemUnSeqCount().get());
     SeriesScanCostMetricSet.getInstance()
         .recordNonAlignedTimeSeriesMetadataTime(
-            getQueryStatistics().loadTimeSeriesMetadataDiskSeqTime.get(),
-            getQueryStatistics().loadTimeSeriesMetadataDiskUnSeqTime.get(),
-            getQueryStatistics().loadTimeSeriesMetadataMemSeqTime.get(),
-            getQueryStatistics().loadTimeSeriesMetadataMemUnSeqTime.get());
+            getQueryStatistics().getLoadTimeSeriesMetadataDiskSeqTime().get(),
+            getQueryStatistics().getLoadTimeSeriesMetadataDiskUnSeqTime().get(),
+            getQueryStatistics().getLoadTimeSeriesMetadataMemSeqTime().get(),
+            getQueryStatistics().getLoadTimeSeriesMetadataMemUnSeqTime().get());
     SeriesScanCostMetricSet.getInstance()
         .recordAlignedTimeSeriesMetadataCount(
-            getQueryStatistics().loadTimeSeriesMetadataAlignedDiskSeqCount.get(),
-            getQueryStatistics().loadTimeSeriesMetadataAlignedDiskUnSeqCount.get(),
-            getQueryStatistics().loadTimeSeriesMetadataAlignedMemSeqCount.get(),
-            getQueryStatistics().loadTimeSeriesMetadataAlignedMemUnSeqCount.get());
+            getQueryStatistics().getLoadTimeSeriesMetadataAlignedDiskSeqCount().get(),
+            getQueryStatistics().getLoadTimeSeriesMetadataAlignedDiskUnSeqCount().get(),
+            getQueryStatistics().getLoadTimeSeriesMetadataAlignedMemSeqCount().get(),
+            getQueryStatistics().getLoadTimeSeriesMetadataAlignedMemUnSeqCount().get());
     SeriesScanCostMetricSet.getInstance()
         .recordAlignedTimeSeriesMetadataTime(
-            getQueryStatistics().loadTimeSeriesMetadataAlignedDiskSeqTime.get(),
-            getQueryStatistics().loadTimeSeriesMetadataAlignedDiskUnSeqTime.get(),
-            getQueryStatistics().loadTimeSeriesMetadataAlignedMemSeqTime.get(),
-            getQueryStatistics().loadTimeSeriesMetadataAlignedMemUnSeqTime.get());
+            getQueryStatistics().getLoadTimeSeriesMetadataAlignedDiskSeqTime().get(),
+            getQueryStatistics().getLoadTimeSeriesMetadataAlignedDiskUnSeqTime().get(),
+            getQueryStatistics().getLoadTimeSeriesMetadataAlignedMemSeqTime().get(),
+            getQueryStatistics().getLoadTimeSeriesMetadataAlignedMemUnSeqTime().get());
 
     SeriesScanCostMetricSet.getInstance()
         .recordConstructChunkReadersCount(
-            getQueryStatistics().constructAlignedChunkReadersMemCount.get(),
-            getQueryStatistics().constructAlignedChunkReadersDiskCount.get(),
-            getQueryStatistics().constructNonAlignedChunkReadersMemCount.get(),
-            getQueryStatistics().constructNonAlignedChunkReadersDiskCount.get());
+            getQueryStatistics().getConstructAlignedChunkReadersMemCount().get(),
+            getQueryStatistics().getConstructAlignedChunkReadersDiskCount().get(),
+            getQueryStatistics().getConstructNonAlignedChunkReadersMemCount().get(),
+            getQueryStatistics().getConstructNonAlignedChunkReadersDiskCount().get());
     SeriesScanCostMetricSet.getInstance()
         .recordConstructChunkReadersTime(
-            getQueryStatistics().constructAlignedChunkReadersMemTime.get(),
-            getQueryStatistics().constructAlignedChunkReadersDiskTime.get(),
-            getQueryStatistics().constructNonAlignedChunkReadersMemTime.get(),
-            getQueryStatistics().constructNonAlignedChunkReadersDiskTime.get());
+            getQueryStatistics().getConstructAlignedChunkReadersMemTime().get(),
+            getQueryStatistics().getConstructAlignedChunkReadersDiskTime().get(),
+            getQueryStatistics().getConstructNonAlignedChunkReadersMemTime().get(),
+            getQueryStatistics().getConstructNonAlignedChunkReadersDiskTime().get());
 
     SeriesScanCostMetricSet.getInstance()
         .recordPageReadersDecompressCount(
-            getQueryStatistics().pageReadersDecodeAlignedMemCount.get(),
-            getQueryStatistics().pageReadersDecodeAlignedDiskCount.get(),
-            getQueryStatistics().pageReadersDecodeNonAlignedMemCount.get(),
-            getQueryStatistics().pageReadersDecodeNonAlignedDiskCount.get());
+            getQueryStatistics().getPageReadersDecodeAlignedMemCount().get(),
+            getQueryStatistics().getPageReadersDecodeAlignedDiskCount().get(),
+            getQueryStatistics().getPageReadersDecodeNonAlignedMemCount().get(),
+            getQueryStatistics().getPageReadersDecodeNonAlignedDiskCount().get());
     SeriesScanCostMetricSet.getInstance()
         .recordPageReadersDecompressTime(
-            getQueryStatistics().pageReadersDecodeAlignedMemTime.get(),
-            getQueryStatistics().pageReadersDecodeAlignedDiskTime.get(),
-            getQueryStatistics().pageReadersDecodeNonAlignedMemTime.get(),
-            getQueryStatistics().pageReadersDecodeNonAlignedDiskTime.get());
+            getQueryStatistics().getPageReadersDecodeAlignedMemTime().get(),
+            getQueryStatistics().getPageReadersDecodeAlignedDiskTime().get(),
+            getQueryStatistics().getPageReadersDecodeNonAlignedMemTime().get(),
+            getQueryStatistics().getPageReadersDecodeNonAlignedDiskTime().get());
 
     SeriesScanCostMetricSet.getInstance()
-        .updatePageReaderMemoryUsage(getQueryStatistics().pageReaderMaxUsedMemorySize.get());
+        .updatePageReaderMemoryUsage(getQueryStatistics().getPageReaderMaxUsedMemorySize().get());
   }
 
   private synchronized void releaseDataNodeQueryContext() {
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/QueryStatistics.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/QueryStatistics.java
index 82094467034..acba03740ae 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/QueryStatistics.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/QueryStatistics.java
@@ -30,46 +30,200 @@ import java.util.concurrent.atomic.AtomicLong;
 public class QueryStatistics {
 
   // statistics for count and time of load timeseriesmetadata
-  public AtomicLong loadTimeSeriesMetadataDiskSeqCount = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataDiskUnSeqCount = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataMemSeqCount = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataMemUnSeqCount = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataAlignedDiskSeqCount = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataAlignedDiskUnSeqCount = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataAlignedMemSeqCount = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataAlignedMemUnSeqCount = new AtomicLong(0);
-
-  public AtomicLong loadTimeSeriesMetadataDiskSeqTime = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataDiskUnSeqTime = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataMemSeqTime = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataMemUnSeqTime = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataAlignedDiskSeqTime = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataAlignedDiskUnSeqTime = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataAlignedMemSeqTime = new AtomicLong(0);
-  public AtomicLong loadTimeSeriesMetadataAlignedMemUnSeqTime = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataDiskSeqCount = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataDiskUnSeqCount = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataMemSeqCount = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataMemUnSeqCount = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataAlignedDiskSeqCount = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataAlignedDiskUnSeqCount = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataAlignedMemSeqCount = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataAlignedMemUnSeqCount = new AtomicLong(0);
+
+  private final AtomicLong loadTimeSeriesMetadataDiskSeqTime = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataDiskUnSeqTime = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataMemSeqTime = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataMemUnSeqTime = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataAlignedDiskSeqTime = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataAlignedDiskUnSeqTime = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataAlignedMemSeqTime = new AtomicLong(0);
+  private final AtomicLong loadTimeSeriesMetadataAlignedMemUnSeqTime = new AtomicLong(0);
 
   // statistics for count and time of construct chunk readers(disk io and decompress)
-  public AtomicLong constructNonAlignedChunkReadersDiskCount = new AtomicLong(0);
-  public AtomicLong constructNonAlignedChunkReadersMemCount = new AtomicLong(0);
-  public AtomicLong constructAlignedChunkReadersDiskCount = new AtomicLong(0);
-  public AtomicLong constructAlignedChunkReadersMemCount = new AtomicLong(0);
+  private final AtomicLong constructNonAlignedChunkReadersDiskCount = new AtomicLong(0);
+  private final AtomicLong constructNonAlignedChunkReadersMemCount = new AtomicLong(0);
+  private final AtomicLong constructAlignedChunkReadersDiskCount = new AtomicLong(0);
+  private final AtomicLong constructAlignedChunkReadersMemCount = new AtomicLong(0);
 
-  public AtomicLong constructNonAlignedChunkReadersDiskTime = new AtomicLong(0);
-  public AtomicLong constructNonAlignedChunkReadersMemTime = new AtomicLong(0);
-  public AtomicLong constructAlignedChunkReadersDiskTime = new AtomicLong(0);
-  public AtomicLong constructAlignedChunkReadersMemTime = new AtomicLong(0);
+  private final AtomicLong constructNonAlignedChunkReadersDiskTime = new AtomicLong(0);
+  private final AtomicLong constructNonAlignedChunkReadersMemTime = new AtomicLong(0);
+  private final AtomicLong constructAlignedChunkReadersDiskTime = new AtomicLong(0);
+  private final AtomicLong constructAlignedChunkReadersMemTime = new AtomicLong(0);
 
   // statistics for count and time of page decode
-  public AtomicLong pageReadersDecodeAlignedDiskCount = new AtomicLong(0);
-  public AtomicLong pageReadersDecodeAlignedDiskTime = new AtomicLong(0);
-  public AtomicLong pageReadersDecodeAlignedMemCount = new AtomicLong(0);
-  public AtomicLong pageReadersDecodeAlignedMemTime = new AtomicLong(0);
-  public AtomicLong pageReadersDecodeNonAlignedDiskCount = new AtomicLong(0);
-  public AtomicLong pageReadersDecodeNonAlignedDiskTime = new AtomicLong(0);
-  public AtomicLong pageReadersDecodeNonAlignedMemCount = new AtomicLong(0);
-  public AtomicLong pageReadersDecodeNonAlignedMemTime = new AtomicLong(0);
-
-  public AtomicLong pageReaderMaxUsedMemorySize = new AtomicLong(0);
+  private final AtomicLong pageReadersDecodeAlignedDiskCount = new AtomicLong(0);
+  private final AtomicLong pageReadersDecodeAlignedDiskTime = new AtomicLong(0);
+  private final AtomicLong pageReadersDecodeAlignedMemCount = new AtomicLong(0);
+  private final AtomicLong pageReadersDecodeAlignedMemTime = new AtomicLong(0);
+  private final AtomicLong pageReadersDecodeNonAlignedDiskCount = new AtomicLong(0);
+  private final AtomicLong pageReadersDecodeNonAlignedDiskTime = new AtomicLong(0);
+  private final AtomicLong pageReadersDecodeNonAlignedMemCount = new AtomicLong(0);
+  private final AtomicLong pageReadersDecodeNonAlignedMemTime = new AtomicLong(0);
+
+  private final AtomicLong timeSeriesMetadataModificationCount = new AtomicLong(0);
+  private final AtomicLong timeSeriesMetadataModificationTime = new AtomicLong(0);
+  private final AtomicLong alignedTimeSeriesMetadataModificationCount = new AtomicLong(0);
+  private final AtomicLong alignedTimeSeriesMetadataModificationTime = new AtomicLong(0);
+
+  // statistics for count and time of page decode
+  private final AtomicLong pageReaderMaxUsedMemorySize = new AtomicLong(0);
+
+  public AtomicLong getLoadTimeSeriesMetadataDiskSeqCount() {
+    return loadTimeSeriesMetadataDiskSeqCount;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataDiskUnSeqCount() {
+    return loadTimeSeriesMetadataDiskUnSeqCount;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataMemSeqCount() {
+    return loadTimeSeriesMetadataMemSeqCount;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataMemUnSeqCount() {
+    return loadTimeSeriesMetadataMemUnSeqCount;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataAlignedDiskSeqCount() {
+    return loadTimeSeriesMetadataAlignedDiskSeqCount;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataAlignedDiskUnSeqCount() {
+    return loadTimeSeriesMetadataAlignedDiskUnSeqCount;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataAlignedMemSeqCount() {
+    return loadTimeSeriesMetadataAlignedMemSeqCount;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataAlignedMemUnSeqCount() {
+    return loadTimeSeriesMetadataAlignedMemUnSeqCount;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataDiskSeqTime() {
+    return loadTimeSeriesMetadataDiskSeqTime;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataDiskUnSeqTime() {
+    return loadTimeSeriesMetadataDiskUnSeqTime;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataMemSeqTime() {
+    return loadTimeSeriesMetadataMemSeqTime;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataMemUnSeqTime() {
+    return loadTimeSeriesMetadataMemUnSeqTime;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataAlignedDiskSeqTime() {
+    return loadTimeSeriesMetadataAlignedDiskSeqTime;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataAlignedDiskUnSeqTime() {
+    return loadTimeSeriesMetadataAlignedDiskUnSeqTime;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataAlignedMemSeqTime() {
+    return loadTimeSeriesMetadataAlignedMemSeqTime;
+  }
+
+  public AtomicLong getLoadTimeSeriesMetadataAlignedMemUnSeqTime() {
+    return loadTimeSeriesMetadataAlignedMemUnSeqTime;
+  }
+
+  public AtomicLong getConstructNonAlignedChunkReadersDiskCount() {
+    return constructNonAlignedChunkReadersDiskCount;
+  }
+
+  public AtomicLong getConstructNonAlignedChunkReadersMemCount() {
+    return constructNonAlignedChunkReadersMemCount;
+  }
+
+  public AtomicLong getConstructAlignedChunkReadersDiskCount() {
+    return constructAlignedChunkReadersDiskCount;
+  }
+
+  public AtomicLong getConstructAlignedChunkReadersMemCount() {
+    return constructAlignedChunkReadersMemCount;
+  }
+
+  public AtomicLong getConstructNonAlignedChunkReadersDiskTime() {
+    return constructNonAlignedChunkReadersDiskTime;
+  }
+
+  public AtomicLong getConstructNonAlignedChunkReadersMemTime() {
+    return constructNonAlignedChunkReadersMemTime;
+  }
+
+  public AtomicLong getConstructAlignedChunkReadersDiskTime() {
+    return constructAlignedChunkReadersDiskTime;
+  }
+
+  public AtomicLong getConstructAlignedChunkReadersMemTime() {
+    return constructAlignedChunkReadersMemTime;
+  }
+
+  public AtomicLong getPageReadersDecodeAlignedDiskCount() {
+    return pageReadersDecodeAlignedDiskCount;
+  }
+
+  public AtomicLong getPageReadersDecodeAlignedDiskTime() {
+    return pageReadersDecodeAlignedDiskTime;
+  }
+
+  public AtomicLong getPageReadersDecodeAlignedMemCount() {
+    return pageReadersDecodeAlignedMemCount;
+  }
+
+  public AtomicLong getPageReadersDecodeAlignedMemTime() {
+    return pageReadersDecodeAlignedMemTime;
+  }
+
+  public AtomicLong getPageReadersDecodeNonAlignedDiskCount() {
+    return pageReadersDecodeNonAlignedDiskCount;
+  }
+
+  public AtomicLong getPageReadersDecodeNonAlignedDiskTime() {
+    return pageReadersDecodeNonAlignedDiskTime;
+  }
+
+  public AtomicLong getPageReadersDecodeNonAlignedMemCount() {
+    return pageReadersDecodeNonAlignedMemCount;
+  }
+
+  public AtomicLong getPageReadersDecodeNonAlignedMemTime() {
+    return pageReadersDecodeNonAlignedMemTime;
+  }
+
+  public AtomicLong getTimeSeriesMetadataModificationCount() {
+    return timeSeriesMetadataModificationCount;
+  }
+
+  public AtomicLong getTimeSeriesMetadataModificationTime() {
+    return timeSeriesMetadataModificationTime;
+  }
+
+  public AtomicLong getAlignedTimeSeriesMetadataModificationCount() {
+    return alignedTimeSeriesMetadataModificationCount;
+  }
+
+  public AtomicLong getAlignedTimeSeriesMetadataModificationTime() {
+    return alignedTimeSeriesMetadataModificationTime;
+  }
+
+  public AtomicLong getPageReaderMaxUsedMemorySize() {
+    return pageReaderMaxUsedMemorySize;
+  }
 
   public TQueryStatistics toThrift() {
     return new TQueryStatistics(
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/FileLoaderUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/FileLoaderUtils.java
index b45990a7f21..4d782f5c900 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/FileLoaderUtils.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/FileLoaderUtils.java
@@ -51,7 +51,6 @@ import java.util.List;
 import java.util.Set;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static org.apache.iotdb.db.queryengine.metric.SeriesScanCostMetricSet.TIMESERIES_METADATA_MODIFICATION_ALIGNED;
 import static org.apache.iotdb.db.queryengine.metric.SeriesScanCostMetricSet.TIMESERIES_METADATA_MODIFICATION_NONALIGNED;
 
 public class FileLoaderUtils {
@@ -102,10 +101,19 @@ public class FileLoaderUtils {
                     resource.getTimeIndexType() != 1,
                     context.isDebug());
         if (timeSeriesMetadata != null) {
+          long t2 = System.nanoTime();
           List<Modification> pathModifications = context.getPathModifications(resource, seriesPath);
           timeSeriesMetadata.setModified(!pathModifications.isEmpty());
           timeSeriesMetadata.setChunkMetadataLoader(
               new DiskChunkMetadataLoader(resource, context, globalTimeFilter, pathModifications));
+          long costTime = System.nanoTime() - t2;
+          SERIES_SCAN_COST_METRIC_SET.recordSeriesScanCost(
+              TIMESERIES_METADATA_MODIFICATION_NONALIGNED, costTime);
+          context
+              .getQueryStatistics()
+              .getTimeSeriesMetadataModificationCount()
+              .getAndAdd(pathModifications.size());
+          context.getQueryStatistics().getTimeSeriesMetadataModificationTime().getAndAdd(costTime);
         }
       } else { // if the tsfile is unclosed, we just get it directly from TsFileResource
         loadFromMem = true;
@@ -118,18 +126,12 @@ public class FileLoaderUtils {
       }
 
       if (timeSeriesMetadata != null) {
-        long t2 = System.nanoTime();
-        try {
-          if (timeSeriesMetadata.getStatistics().getStartTime()
-              > timeSeriesMetadata.getStatistics().getEndTime()) {
-            return null;
-          }
-          if (globalTimeFilter != null && globalTimeFilter.canSkip(timeSeriesMetadata)) {
-            return null;
-          }
-        } finally {
-          SERIES_SCAN_COST_METRIC_SET.recordSeriesScanCost(
-              TIMESERIES_METADATA_MODIFICATION_NONALIGNED, System.nanoTime() - t2);
+        if (timeSeriesMetadata.getStatistics().getStartTime()
+            > timeSeriesMetadata.getStatistics().getEndTime()) {
+          return null;
+        }
+        if (globalTimeFilter != null && globalTimeFilter.canSkip(timeSeriesMetadata)) {
+          return null;
         }
       }
       return timeSeriesMetadata;
@@ -137,19 +139,19 @@ public class FileLoaderUtils {
       long costTime = System.nanoTime() - t1;
       if (loadFromMem) {
         if (isSeq) {
-          context.getQueryStatistics().loadTimeSeriesMetadataMemSeqCount.getAndAdd(1);
-          context.getQueryStatistics().loadTimeSeriesMetadataMemSeqTime.getAndAdd(costTime);
+          context.getQueryStatistics().getLoadTimeSeriesMetadataMemSeqCount().getAndAdd(1);
+          context.getQueryStatistics().getLoadTimeSeriesMetadataMemSeqTime().getAndAdd(costTime);
         } else {
-          context.getQueryStatistics().loadTimeSeriesMetadataMemUnSeqCount.getAndAdd(1);
-          context.getQueryStatistics().loadTimeSeriesMetadataMemUnSeqTime.getAndAdd(costTime);
+          context.getQueryStatistics().getLoadTimeSeriesMetadataMemUnSeqCount().getAndAdd(1);
+          context.getQueryStatistics().getLoadTimeSeriesMetadataMemUnSeqTime().getAndAdd(costTime);
         }
       } else {
         if (isSeq) {
-          context.getQueryStatistics().loadTimeSeriesMetadataDiskSeqCount.getAndAdd(1);
-          context.getQueryStatistics().loadTimeSeriesMetadataDiskSeqTime.getAndAdd(costTime);
+          context.getQueryStatistics().getLoadTimeSeriesMetadataDiskSeqCount().getAndAdd(1);
+          context.getQueryStatistics().getLoadTimeSeriesMetadataDiskSeqTime().getAndAdd(costTime);
         } else {
-          context.getQueryStatistics().loadTimeSeriesMetadataDiskUnSeqCount.getAndAdd(1);
-          context.getQueryStatistics().loadTimeSeriesMetadataDiskUnSeqTime.getAndAdd(costTime);
+          context.getQueryStatistics().getLoadTimeSeriesMetadataDiskUnSeqCount().getAndAdd(1);
+          context.getQueryStatistics().getLoadTimeSeriesMetadataDiskUnSeqTime().getAndAdd(costTime);
         }
       }
     }
@@ -190,18 +192,12 @@ public class FileLoaderUtils {
       }
 
       if (alignedTimeSeriesMetadata != null) {
-        final long t2 = System.nanoTime();
-        try {
-          if (alignedTimeSeriesMetadata.getTimeseriesMetadata().getStatistics().getStartTime()
-              > alignedTimeSeriesMetadata.getTimeseriesMetadata().getStatistics().getEndTime()) {
-            return null;
-          }
-          if (globalTimeFilter != null && globalTimeFilter.canSkip(alignedTimeSeriesMetadata)) {
-            return null;
-          }
-        } finally {
-          SERIES_SCAN_COST_METRIC_SET.recordSeriesScanCost(
-              TIMESERIES_METADATA_MODIFICATION_ALIGNED, System.nanoTime() - t2);
+        if (alignedTimeSeriesMetadata.getTimeseriesMetadata().getStatistics().getStartTime()
+            > alignedTimeSeriesMetadata.getTimeseriesMetadata().getStatistics().getEndTime()) {
+          return null;
+        }
+        if (globalTimeFilter != null && globalTimeFilter.canSkip(alignedTimeSeriesMetadata)) {
+          return null;
         }
       }
       return alignedTimeSeriesMetadata;
@@ -209,24 +205,33 @@ public class FileLoaderUtils {
       long costTime = System.nanoTime() - t1;
       if (loadFromMem) {
         if (isSeq) {
-          context.getQueryStatistics().loadTimeSeriesMetadataAlignedMemSeqCount.getAndAdd(1);
-          context.getQueryStatistics().loadTimeSeriesMetadataAlignedMemSeqTime.getAndAdd(costTime);
+          context.getQueryStatistics().getLoadTimeSeriesMetadataAlignedMemSeqCount().getAndAdd(1);
+          context
+              .getQueryStatistics()
+              .getLoadTimeSeriesMetadataAlignedMemSeqTime()
+              .getAndAdd(costTime);
         } else {
-          context.getQueryStatistics().loadTimeSeriesMetadataAlignedMemUnSeqCount.getAndAdd(1);
+          context.getQueryStatistics().getLoadTimeSeriesMetadataAlignedMemUnSeqCount().getAndAdd(1);
           context
               .getQueryStatistics()
-              .loadTimeSeriesMetadataAlignedMemUnSeqTime
+              .getLoadTimeSeriesMetadataAlignedMemUnSeqTime()
               .getAndAdd(costTime);
         }
       } else {
         if (isSeq) {
-          context.getQueryStatistics().loadTimeSeriesMetadataAlignedDiskSeqCount.getAndAdd(1);
-          context.getQueryStatistics().loadTimeSeriesMetadataAlignedDiskSeqTime.getAndAdd(costTime);
+          context.getQueryStatistics().getLoadTimeSeriesMetadataAlignedDiskSeqCount().getAndAdd(1);
+          context
+              .getQueryStatistics()
+              .getLoadTimeSeriesMetadataAlignedDiskSeqTime()
+              .getAndAdd(costTime);
         } else {
-          context.getQueryStatistics().loadTimeSeriesMetadataAlignedDiskUnSeqCount.getAndAdd(1);
           context
               .getQueryStatistics()
-              .loadTimeSeriesMetadataAlignedDiskUnSeqTime
+              .getLoadTimeSeriesMetadataAlignedDiskUnSeqCount()
+              .getAndAdd(1);
+          context
+              .getQueryStatistics()
+              .getLoadTimeSeriesMetadataAlignedDiskUnSeqTime()
               .getAndAdd(costTime);
         }
       }
@@ -306,6 +311,7 @@ public class FileLoaderUtils {
       AlignedTimeSeriesMetadata alignedTimeSeriesMetadata,
       AlignedPath alignedPath,
       QueryContext context) {
+    long startTime = System.nanoTime();
     List<TimeseriesMetadata> valueTimeSeriesMetadataList =
         alignedTimeSeriesMetadata.getValueTimeseriesMetadataList();
     List<List<Modification>> res = new ArrayList<>();
@@ -317,11 +323,19 @@ public class FileLoaderUtils {
         valueTimeSeriesMetadataList.get(i).setModified(!pathModifications.isEmpty());
         res.add(pathModifications);
         modified = (modified || !pathModifications.isEmpty());
+        context
+            .getQueryStatistics()
+            .getAlignedTimeSeriesMetadataModificationCount()
+            .getAndAdd(pathModifications.size());
       } else {
         res.add(Collections.emptyList());
       }
     }
     alignedTimeSeriesMetadata.getTimeseriesMetadata().setModified(modified);
+    long costTime = System.nanoTime() - startTime;
+    SERIES_SCAN_COST_METRIC_SET.recordSeriesScanCost(
+        TIMESERIES_METADATA_MODIFICATION_NONALIGNED, costTime);
+    context.getQueryStatistics().getAlignedTimeSeriesMetadataModificationTime().getAndAdd(costTime);
     return res;
   }
 
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtil.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtil.java
index 66c833401a8..2c687dcc1a5 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtil.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtil.java
@@ -811,7 +811,7 @@ public class SeriesScanUtil implements Accountable {
                     orderUtils.getOverlapCheckTime(firstPageReader.getStatistics()));
                 context
                     .getQueryStatistics()
-                    .pageReaderMaxUsedMemorySize
+                    .getPageReaderMaxUsedMemorySize()
                     .updateAndGet(v -> Math.max(v, mergeReader.getUsedMemorySize()));
                 currentPageEndPointTime =
                     updateEndPointTime(currentPageEndPointTime, firstPageReader);
@@ -839,7 +839,7 @@ public class SeriesScanUtil implements Accountable {
                     orderUtils.getOverlapCheckTime(pageReader.getStatistics()));
                 context
                     .getQueryStatistics()
-                    .pageReaderMaxUsedMemorySize
+                    .getPageReaderMaxUsedMemorySize()
                     .updateAndGet(v -> Math.max(v, mergeReader.getUsedMemorySize()));
                 currentPageEndPointTime = updateEndPointTime(currentPageEndPointTime, pageReader);
               }
@@ -1019,7 +1019,7 @@ public class SeriesScanUtil implements Accountable {
         orderUtils.getOverlapCheckTime(pageReader.getStatistics()));
     context
         .getQueryStatistics()
-        .pageReaderMaxUsedMemorySize
+        .getPageReaderMaxUsedMemorySize()
         .updateAndGet(v -> Math.max(v, mergeReader.getUsedMemorySize()));
   }
 
@@ -1233,19 +1233,19 @@ public class SeriesScanUtil implements Accountable {
         long time = System.nanoTime() - startTime;
         if (isAligned) {
           if (isMem) {
-            context.getQueryStatistics().pageReadersDecodeAlignedMemCount.getAndAdd(1);
-            context.getQueryStatistics().pageReadersDecodeAlignedMemTime.getAndAdd(time);
+            context.getQueryStatistics().getPageReadersDecodeAlignedMemCount().getAndAdd(1);
+            context.getQueryStatistics().getPageReadersDecodeAlignedMemTime().getAndAdd(time);
           } else {
-            context.getQueryStatistics().pageReadersDecodeAlignedDiskCount.getAndAdd(1);
-            context.getQueryStatistics().pageReadersDecodeAlignedDiskTime.getAndAdd(time);
+            context.getQueryStatistics().getPageReadersDecodeAlignedDiskCount().getAndAdd(1);
+            context.getQueryStatistics().getPageReadersDecodeAlignedDiskTime().getAndAdd(time);
           }
         } else {
           if (isMem) {
-            context.getQueryStatistics().pageReadersDecodeNonAlignedMemCount.getAndAdd(1);
-            context.getQueryStatistics().pageReadersDecodeNonAlignedMemTime.getAndAdd(time);
+            context.getQueryStatistics().getPageReadersDecodeNonAlignedMemCount().getAndAdd(1);
+            context.getQueryStatistics().getPageReadersDecodeNonAlignedMemTime().getAndAdd(time);
           } else {
-            context.getQueryStatistics().pageReadersDecodeNonAlignedDiskCount.getAndAdd(1);
-            context.getQueryStatistics().pageReadersDecodeNonAlignedDiskTime.getAndAdd(time);
+            context.getQueryStatistics().getPageReadersDecodeNonAlignedDiskCount().getAndAdd(1);
+            context.getQueryStatistics().getPageReadersDecodeNonAlignedDiskTime().getAndAdd(time);
           }
         }
       }
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskAlignedChunkLoader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskAlignedChunkLoader.java
index 7340204bea6..c69dc59607d 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskAlignedChunkLoader.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskAlignedChunkLoader.java
@@ -109,8 +109,8 @@ public class DiskAlignedChunkLoader implements IChunkLoader {
       return chunkReader;
     } finally {
       long time = System.nanoTime() - t1;
-      context.getQueryStatistics().constructAlignedChunkReadersDiskCount.getAndAdd(1);
-      context.getQueryStatistics().constructAlignedChunkReadersDiskTime.getAndAdd(time);
+      context.getQueryStatistics().getConstructAlignedChunkReadersDiskCount().getAndAdd(1);
+      context.getQueryStatistics().getConstructAlignedChunkReadersDiskTime().getAndAdd(time);
     }
   }
 }
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskChunkLoader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskChunkLoader.java
index cc702414bf4..38cc7215d21 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskChunkLoader.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskChunkLoader.java
@@ -95,8 +95,8 @@ public class DiskChunkLoader implements IChunkLoader {
       return chunkReader;
     } finally {
       long time = System.nanoTime() - t1;
-      context.getQueryStatistics().constructNonAlignedChunkReadersDiskCount.getAndAdd(1);
-      context.getQueryStatistics().constructNonAlignedChunkReadersDiskTime.getAndAdd(time);
+      context.getQueryStatistics().getConstructNonAlignedChunkReadersDiskCount().getAndAdd(1);
+      context.getQueryStatistics().getConstructNonAlignedChunkReadersDiskTime().getAndAdd(time);
     }
   }
 }
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemAlignedChunkLoader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemAlignedChunkLoader.java
index 6b25deaeb31..c9c92bc7398 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemAlignedChunkLoader.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemAlignedChunkLoader.java
@@ -62,8 +62,8 @@ public class MemAlignedChunkLoader implements IChunkLoader {
       return new MemAlignedChunkReader(chunk, globalTimeFilter);
     } finally {
       long duration = System.nanoTime() - startTime;
-      context.getQueryStatistics().constructAlignedChunkReadersMemCount.getAndAdd(1);
-      context.getQueryStatistics().constructAlignedChunkReadersMemTime.getAndAdd(duration);
+      context.getQueryStatistics().getConstructAlignedChunkReadersMemCount().getAndAdd(1);
+      context.getQueryStatistics().getConstructAlignedChunkReadersMemTime().getAndAdd(duration);
       SERIES_SCAN_COST_METRIC_SET.recordSeriesScanCost(INIT_CHUNK_READER_ALIGNED_MEM, duration);
     }
   }
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemChunkLoader.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemChunkLoader.java
index 56a4ec4e81e..7683b38a23f 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemChunkLoader.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/MemChunkLoader.java
@@ -62,8 +62,8 @@ public class MemChunkLoader implements IChunkLoader {
       return new MemChunkReader(chunk, globalTimeFilter);
     } finally {
       long duration = System.nanoTime() - startTime;
-      context.getQueryStatistics().constructNonAlignedChunkReadersMemCount.getAndAdd(1);
-      context.getQueryStatistics().constructNonAlignedChunkReadersMemTime.getAndAdd(duration);
+      context.getQueryStatistics().getConstructNonAlignedChunkReadersMemCount().getAndAdd(1);
+      context.getQueryStatistics().getConstructNonAlignedChunkReadersMemTime().getAndAdd(duration);
       SERIES_SCAN_COST_METRIC_SET.recordSeriesScanCost(INIT_CHUNK_READER_NONALIGNED_MEM, duration);
     }
   }