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 <[email protected]> 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); } }
