You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hu...@apache.org on 2023/04/14 02:40:56 UTC

[iotdb] 02/02: fix load chunk

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

hui pushed a commit to branch lmh/groupByTest
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit e8cc0dcb1ca29469392e42c17a8e1f3b3fe48d99
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Fri Apr 14 10:40:35 2023 +0800

    fix load chunk
---
 .../execution/operator/source/SeriesScanUtil.java  | 50 ++++++++++------------
 .../iotdb/db/mpp/statistics/QueryStatistics.java   | 40 ++++-------------
 .../org/apache/iotdb/db/utils/FileLoaderUtils.java |  3 +-
 3 files changed, 31 insertions(+), 62 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/SeriesScanUtil.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/SeriesScanUtil.java
index 70a540070e..2bebeef734 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/SeriesScanUtil.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/SeriesScanUtil.java
@@ -927,37 +927,31 @@ public class SeriesScanUtil {
   }
 
   private void initFirstPageReader() throws IOException {
-    long startTime = System.nanoTime();
-    try {
-      while (this.firstPageReader == null) {
-        VersionPageReader firstPageReader = getFirstPageReaderFromCachedReaders();
-
-        // unpack overlapped page using current page reader
-        if (firstPageReader != null) {
-          long overlapCheckTime = orderUtils.getOverlapCheckTime(firstPageReader.getStatistics());
-          unpackAllOverlappedTsFilesToTimeSeriesMetadata(overlapCheckTime);
-          unpackAllOverlappedTimeSeriesMetadataToCachedChunkMetadata(overlapCheckTime, false);
-          unpackAllOverlappedChunkMetadataToPageReaders(overlapCheckTime, false);
-
-          // this page after unpacking must be the first page
-          if (firstPageReader.equals(getFirstPageReaderFromCachedReaders())) {
-            this.firstPageReader = firstPageReader;
-            if (!seqPageReaders.isEmpty() && firstPageReader.equals(seqPageReaders.get(0))) {
-              seqPageReaders.remove(0);
-              break;
-            } else if (!unSeqPageReaders.isEmpty()
-                && firstPageReader.equals(unSeqPageReaders.peek())) {
-              unSeqPageReaders.poll();
-              break;
-            }
+    while (this.firstPageReader == null) {
+      VersionPageReader firstPageReader = getFirstPageReaderFromCachedReaders();
+
+      // unpack overlapped page using current page reader
+      if (firstPageReader != null) {
+        long overlapCheckTime = orderUtils.getOverlapCheckTime(firstPageReader.getStatistics());
+        unpackAllOverlappedTsFilesToTimeSeriesMetadata(overlapCheckTime);
+        unpackAllOverlappedTimeSeriesMetadataToCachedChunkMetadata(overlapCheckTime, false);
+        unpackAllOverlappedChunkMetadataToPageReaders(overlapCheckTime, false);
+
+        // this page after unpacking must be the first page
+        if (firstPageReader.equals(getFirstPageReaderFromCachedReaders())) {
+          this.firstPageReader = firstPageReader;
+          if (!seqPageReaders.isEmpty() && firstPageReader.equals(seqPageReaders.get(0))) {
+            seqPageReaders.remove(0);
+            break;
+          } else if (!unSeqPageReaders.isEmpty()
+              && firstPageReader.equals(unSeqPageReaders.peek())) {
+            unSeqPageReaders.poll();
+            break;
           }
-        } else {
-          return;
         }
+      } else {
+        return;
       }
-    } finally {
-      QueryStatistics.getInstance()
-          .addCost(QueryStatistics.INIT_FIRST_PAGE, System.nanoTime() - startTime);
     }
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/statistics/QueryStatistics.java b/server/src/main/java/org/apache/iotdb/db/mpp/statistics/QueryStatistics.java
index 783af3bb82..70492f79d0 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/statistics/QueryStatistics.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/statistics/QueryStatistics.java
@@ -59,10 +59,6 @@ public class QueryStatistics {
 
   public static final String CHECK_MEMORY = "CheckMem";
 
-  public static final String ALLOC_EX_MEMORY = "AllocExchangeMem";
-
-  public static final String QUERY_EXECUTION = "QueryExecution";
-
   public static final String QUERY_RESOURCE_INIT = "QueryResourceInit";
 
   public static final String INIT_SOURCE_OP = "InitSourceOp";
@@ -74,17 +70,8 @@ public class QueryStatistics {
 
   public static final String LOCAL_SOURCE_HANDLE_SER_TSBLOCK = "LocalSourceHandleSerializeTsBlock";
 
-  public static final String REMOTE_SOURCE_HANDLE_GET_TSBLOCK = "RemoteSourceHandleGetTsBlock";
-
-  public static final String REMOTE_SOURCE_HANDLE_DESER_TSBLOCK =
-      "RemoteSourceHandleDeserializeTsBlock";
-
   public static final String WAIT_FOR_RESULT = "WaitForResult";
 
-  public static final String SERIES_SCAN_OPERATOR = "SeriesScanOperator";
-
-  public static final String ALIGNED_SERIES_SCAN_OPERATOR = "AlignedSeriesScanOperator";
-
   public static final String AGG_SCAN_OPERATOR = "AbstractSeriesAggregationScanOperator";
 
   public static final String CAL_NEXT_AGG_RES = "CalcNextAggRes";
@@ -107,11 +94,6 @@ public class QueryStatistics {
 
   public static final String BUILD_AGG_RES = "BuildAggRes";
 
-  public static final String FILTER_AND_PROJECT_OPERATOR = "FilterAndProjectOperator";
-
-  public static final String SINGLE_INPUT_AGG_OPERATOR = "SingleInputAggregationOperator";
-
-  public static final String PAGE_READER = "IPageReader";
   public static final String PARSER = "Parser";
 
   public static final String CREATE_QUERY_EXEC = "CreateQueryExec";
@@ -125,8 +107,6 @@ public class QueryStatistics {
   public static final String DISTRIBUTION_PLANNER = "DistributionPlanner";
   public static final String DISPATCHER = "Dispatcher";
 
-  public static final String WAIT_FOR_DISPATCH = "WaitForDispatch";
-
   public static final String DISPATCH_READ = "DispatchRead";
 
   public static final String DRIVER_CLOSE = "CloseDriver";
@@ -153,27 +133,23 @@ public class QueryStatistics {
 
   public static final String SERVER_RPC_RT = "ServerRpcRT";
 
-  public static final String LOAD_TIME_SERIES_METADATA_ALIGNED = "loadTimeSeriesMetadata-aligned";
   public static final String LOAD_TIME_SERIES_METADATA = "loadTimeSeriesMetadata";
   public static final String LOAD_CHUNK_METADATA_LIST = "loadChunkMetadataList";
   public static final String LOAD_PAGE_READER_LIST = "loadPageReaderList";
-  public static final String TIME_SERIES_METADATA_CACHE_MISS = "TimeSeriesMetadataCacheMiss";
-  public static final String CHUNK_CACHE_MISS = "ChunkCacheMiss";
-  public static final String LOAD_CHUNK = "ChunkCacheMiss";
+  public static final String LOAD_CHUNK = "loadChunk";
   public static final String INIT_PAGE_READERS = "initAllPageReaders";
+  public static final String PAGE_READER = "IPageReader";
 
   public static final String HAS_NEXT_FILE = "hasNextFile";
-  public static final String HAS_NEXT_CHUNK = "hasNextChunk";
-  public static final String HAS_NEXT_PAGE = "hasNextPage";
-  public static final String HAS_NEXT_OVERLAPPED_PAGE = "hasNextOverlappedPage";
-
   public static final String FILTER_FIRST_TIMESERIES_METADATA = "filterFirstTimeSeriesMetadata";
-  public static final String FILTER_FIRST_CHUNK_METADATA = "filterFirstChunkMetadata";
-
   public static final String FIND_END_TIME = "findEndTime";
   public static final String PICK_FIRST_TIMESERIES_METADATA = "pickFirstTimeSeriesMetadata";
-  public static final String INIT_FIRST_PAGE = "initFirstPage";
 
+  public static final String HAS_NEXT_CHUNK = "hasNextChunk";
+  public static final String FILTER_FIRST_CHUNK_METADATA = "filterFirstChunkMetadata";
+
+  public static final String HAS_NEXT_PAGE = "hasNextPage";
+  public static final String HAS_NEXT_OVERLAPPED_PAGE = "hasNextOverlappedPage";
   public static final String MERGE_READER_ADD_READER = "mergeReader#addReader";
   public static final String MERGE_READER_NEXT = "mergeReader#nextTimeValuePair";
   public static final String MERGE_READER_UPDATE_HEAP = "mergeReader#updateHeap";
@@ -310,7 +286,7 @@ public class QueryStatistics {
       builder.append("|   |    |[FileLoaderInterface]").append(System.lineSeparator());
       builder
           .append("|   |       |___loadTSMetadata ")
-          .append(operationStatistics.get(LOAD_TIME_SERIES_METADATA_ALIGNED))
+          .append(operationStatistics.get(LOAD_TIME_SERIES_METADATA))
           .append(System.lineSeparator());
       builder
           .append("|   |       |___loadChunkMetaList ")
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/FileLoaderUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/FileLoaderUtils.java
index 5387aafbf0..6cd3a6d50c 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/FileLoaderUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/FileLoaderUtils.java
@@ -294,8 +294,7 @@ public class FileLoaderUtils {
               ? LOAD_TIMESERIES_METADATA_ALIGNED_MEM
               : LOAD_TIMESERIES_METADATA_ALIGNED_DISK,
           costTime);
-      QueryStatistics.getInstance()
-          .addCost(QueryStatistics.LOAD_TIME_SERIES_METADATA_ALIGNED, costTime);
+      QueryStatistics.getInstance().addCost(QueryStatistics.LOAD_TIME_SERIES_METADATA, costTime);
     }
   }