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:55 UTC

[iotdb] 01/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 59bcf3a57d5f6bf24cada9c549760a1e2380d30d
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Fri Apr 14 10:32:48 2023 +0800

    fix load chunk
---
 .../java/org/apache/iotdb/db/engine/cache/ChunkCache.java    |  5 ++++-
 .../org/apache/iotdb/db/mpp/statistics/QueryStatistics.java  | 12 +++++++++++-
 .../iotdb/db/query/reader/chunk/DiskAlignedChunkLoader.java  |  5 ++++-
 .../apache/iotdb/db/query/reader/chunk/DiskChunkLoader.java  |  5 ++++-
 4 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/cache/ChunkCache.java b/server/src/main/java/org/apache/iotdb/db/engine/cache/ChunkCache.java
index 5564df780c..0258522c09 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/cache/ChunkCache.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/cache/ChunkCache.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.mpp.metric.ChunkCacheMetrics;
 import org.apache.iotdb.db.mpp.metric.QueryMetricsManager;
+import org.apache.iotdb.db.mpp.statistics.QueryStatistics;
 import org.apache.iotdb.db.query.control.FileReaderManager;
 import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata;
 import org.apache.iotdb.tsfile.read.TsFileSequenceReader;
@@ -136,7 +137,9 @@ public class ChunkCache {
           chunkMetaData.getDeleteIntervalList(),
           chunkMetaData.getStatistics());
     } finally {
-      QUERY_METRICS.recordSeriesScanCost(READ_CHUNK_ALL, System.nanoTime() - startTime);
+      long costTime = System.nanoTime() - startTime;
+      QUERY_METRICS.recordSeriesScanCost(READ_CHUNK_ALL, costTime);
+      QueryStatistics.getInstance().addCost(QueryStatistics.LOAD_CHUNK, costTime);
     }
   }
 
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 ef615393d4..783af3bb82 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
@@ -38,7 +38,7 @@ import java.util.concurrent.atomic.AtomicLong;
 @ThreadSafe
 public class QueryStatistics {
 
-  private static final long QUERY_STATISTICS_PRINT_INTERVAL_IN_MS = 1_000_000;
+  private static final long QUERY_STATISTICS_PRINT_INTERVAL_IN_MS = 100_000;
 
   private static final Logger QUERY_STATISTICS_LOGGER =
       LoggerFactory.getLogger(IoTDBConstant.QUERY_STATISTICS_LOGGER_NAME);
@@ -159,6 +159,8 @@ public class QueryStatistics {
   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 INIT_PAGE_READERS = "initAllPageReaders";
 
   public static final String HAS_NEXT_FILE = "hasNextFile";
   public static final String HAS_NEXT_CHUNK = "hasNextChunk";
@@ -318,6 +320,14 @@ public class QueryStatistics {
           .append("|   |       |___loadPageReaderList ")
           .append(operationStatistics.get(LOAD_PAGE_READER_LIST))
           .append(System.lineSeparator());
+      builder
+          .append("|   |       |   |___loadChunk ")
+          .append(operationStatistics.get(LOAD_CHUNK))
+          .append(System.lineSeparator());
+      builder
+          .append("|   |       |   |___initPageReaders ")
+          .append(operationStatistics.get(INIT_PAGE_READERS))
+          .append(System.lineSeparator());
       builder
           .append("|   |       |___pageReader ")
           .append(operationStatistics.get(PAGE_READER))
diff --git a/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/DiskAlignedChunkLoader.java b/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/DiskAlignedChunkLoader.java
index b433641af0..efb0ca8dd2 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/DiskAlignedChunkLoader.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/DiskAlignedChunkLoader.java
@@ -20,6 +20,7 @@ package org.apache.iotdb.db.query.reader.chunk;
 
 import org.apache.iotdb.db.engine.cache.ChunkCache;
 import org.apache.iotdb.db.mpp.metric.QueryMetricsManager;
+import org.apache.iotdb.db.mpp.statistics.QueryStatistics;
 import org.apache.iotdb.tsfile.file.metadata.AlignedChunkMetadata;
 import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata;
 import org.apache.iotdb.tsfile.file.metadata.IChunkMetadata;
@@ -72,7 +73,9 @@ public class DiskAlignedChunkLoader implements IChunkLoader {
 
       long t2 = System.nanoTime();
       IChunkReader chunkReader = new AlignedChunkReader(timeChunk, valueChunkList, timeFilter);
-      QUERY_METRICS.recordSeriesScanCost(INIT_CHUNK_READER_ALIGNED_DISK, System.nanoTime() - t2);
+      long costTime = System.nanoTime() - t2;
+      QUERY_METRICS.recordSeriesScanCost(INIT_CHUNK_READER_ALIGNED_DISK, costTime);
+      QueryStatistics.getInstance().addCost(QueryStatistics.INIT_PAGE_READERS, costTime);
 
       return chunkReader;
     } finally {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/DiskChunkLoader.java b/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/DiskChunkLoader.java
index 85ee83bee4..b038737719 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/DiskChunkLoader.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/DiskChunkLoader.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.query.reader.chunk;
 
 import org.apache.iotdb.db.engine.cache.ChunkCache;
 import org.apache.iotdb.db.mpp.metric.QueryMetricsManager;
+import org.apache.iotdb.db.mpp.statistics.QueryStatistics;
 import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata;
 import org.apache.iotdb.tsfile.file.metadata.IChunkMetadata;
 import org.apache.iotdb.tsfile.read.common.Chunk;
@@ -65,7 +66,9 @@ public class DiskChunkLoader implements IChunkLoader {
 
       long t2 = System.nanoTime();
       IChunkReader chunkReader = new ChunkReader(chunk, timeFilter);
-      QUERY_METRICS.recordSeriesScanCost(INIT_CHUNK_READER_NONALIGNED_DISK, System.nanoTime() - t2);
+      long costTime = System.nanoTime() - t2;
+      QUERY_METRICS.recordSeriesScanCost(INIT_CHUNK_READER_NONALIGNED_DISK, costTime);
+      QueryStatistics.getInstance().addCost(QueryStatistics.INIT_PAGE_READERS, costTime);
 
       return chunkReader;
     } finally {