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);
}
}