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 {