This is an automated email from the ASF dual-hosted git repository. shuwenwei pushed a commit to branch useTsFileIDInFileReaderManager-1.3 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 9d09a8b650a513a8491c9e2d4dc8f4c2d05d225b Author: shuwenwei <55970239+shuwen...@users.noreply.github.com> AuthorDate: Wed Aug 6 14:09:18 2025 +0800 Replace the key in FileReaderManager to TsFileID --- .../db/storageengine/buffer/BloomFilterCache.java | 7 +- .../iotdb/db/storageengine/buffer/ChunkCache.java | 3 +- .../buffer/TimeSeriesMetadataCache.java | 5 +- .../db/storageengine/dataregion/DataRegion.java | 2 +- .../execute/utils/MultiTsFileDeviceIterator.java | 3 +- .../writer/ReadPointCrossCompactionWriter.java | 3 +- .../dataregion/memtable/TsFileProcessor.java | 2 + .../dataregion/read/control/FileReaderManager.java | 85 ++++++++++++---------- .../filescan/impl/ClosedFileScanHandleImpl.java | 8 +- .../filescan/impl/DiskAlignedChunkHandleImpl.java | 4 +- .../read/filescan/impl/DiskChunkHandleImpl.java | 7 +- .../read/filescan/model/AbstractChunkOffset.java | 3 +- .../read/filescan/model/AlignedChunkOffset.java | 4 +- .../read/filescan/model/ChunkOffset.java | 5 +- .../storageengine/buffer/BloomFilterCacheTest.java | 6 +- .../compaction/CompactionWithMinTimestampTest.java | 4 +- .../compaction/FastAlignedCrossCompactionTest.java | 4 +- .../FastCrossCompactionPerformerTest.java | 4 +- .../FastInnerCompactionPerformerTest.java | 4 +- .../FastNonAlignedCrossCompactionTest.java | 4 +- .../compaction/ReadChunkInnerCompactionTest.java | 4 +- .../ReadPointAlignedCrossCompactionTest.java | 4 +- .../ReadPointCompactionPerformerTest.java | 4 +- .../ReadPointNonAlignedCrossCompactionTest.java | 4 +- .../cross/CrossSpaceCompactionSelectorTest.java | 4 +- .../inner/InnerSpaceCompactionSelectorTest.java | 4 +- .../SizeTieredCompactionRecoverTest.java | 2 +- .../utils/MultiTsFileDeviceIteratorTest.java | 4 +- .../read/control/FileReaderManagerTest.java | 4 +- 29 files changed, 116 insertions(+), 85 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/buffer/BloomFilterCache.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/buffer/BloomFilterCache.java index e6407c6606c..a18cfe774b2 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/buffer/BloomFilterCache.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/buffer/BloomFilterCache.java @@ -199,7 +199,12 @@ public class BloomFilterCache { try { cacheMiss = true; TsFileSequenceReader reader = - FileReaderManager.getInstance().get(bloomFilterCacheKey.filePath, true, ioSizeRecorder); + FileReaderManager.getInstance() + .get( + bloomFilterCacheKey.filePath, + bloomFilterCacheKey.tsFileID, + true, + ioSizeRecorder); return reader.readBloomFilter(ioSizeRecorder); } catch (IOException e) { throw new IoTDBIORuntimeException(e); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/buffer/ChunkCache.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/buffer/ChunkCache.java index b87351444cc..83b9929a983 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/buffer/ChunkCache.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/buffer/ChunkCache.java @@ -289,7 +289,8 @@ public class ChunkCache { try { cacheMiss = true; TsFileSequenceReader reader = - FileReaderManager.getInstance().get(key.getFilePath(), key.closed, ioSizeRecorder); + FileReaderManager.getInstance() + .get(key.getFilePath(), key.tsFileID, key.closed, ioSizeRecorder); Chunk chunk = reader.readMemChunk(key.offsetOfChunkHeader, ioSizeRecorder); // to save memory footprint, we don't save measurementId in ChunkHeader of Chunk chunk.getHeader().setMeasurementID(null); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/buffer/TimeSeriesMetadataCache.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/buffer/TimeSeriesMetadataCache.java index 44324ae2226..ca9f72dbe84 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/buffer/TimeSeriesMetadataCache.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/buffer/TimeSeriesMetadataCache.java @@ -127,7 +127,8 @@ public class TimeSeriesMetadataCache { // bloom filter part TsFileSequenceReader reader = - FileReaderManager.getInstance().get(filePath, true, bloomFilterIoSizeRecorder); + FileReaderManager.getInstance() + .get(filePath, key.tsFileID, true, bloomFilterIoSizeRecorder); BloomFilter bloomFilter = reader.readBloomFilter(bloomFilterIoSizeRecorder); queryContext.getQueryStatistics().getLoadBloomFilterFromDiskCount().incrementAndGet(); if (bloomFilter != null @@ -192,7 +193,7 @@ public class TimeSeriesMetadataCache { loadBloomFilterTime = System.nanoTime() - loadBloomFilterStartTime; TsFileSequenceReader reader = FileReaderManager.getInstance() - .get(filePath, true, timeSeriesMetadataIoSizeRecorder); + .get(filePath, key.tsFileID, true, timeSeriesMetadataIoSizeRecorder); List<TimeseriesMetadata> timeSeriesMetadataList = reader.readTimeseriesMetadata( key.device, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java index 371807e9dd1..7200d3da018 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java @@ -2868,7 +2868,7 @@ public class DataRegion implements IDataRegionForQuery { if (!oldTsFileResource.getTsFile().exists()) { tsFileManager.remove(oldTsFileResource, oldTsFileResource.isSeq()); } - FileReaderManager.getInstance().closeFileAndRemoveReader(oldTsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(oldTsFileResource.getTsFileID()); oldTsFileResource.setSettleTsFileCallBack(null); SettleService.getINSTANCE().getFilesToBeSettledCount().addAndGet(-1); } catch (IOException e) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java index a53d8a40bdb..cbc6ac1b686 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java @@ -119,7 +119,8 @@ public class MultiTsFileDeviceIterator implements AutoCloseable { this.tsFileResourcesSortedByDesc, TsFileResource::compareFileCreationOrderByDesc); for (TsFileResource tsFileResource : tsFileResourcesSortedByDesc) { TsFileSequenceReader reader = - FileReaderManager.getInstance().get(tsFileResource.getTsFilePath(), true); + FileReaderManager.getInstance() + .get(tsFileResource.getTsFilePath(), tsFileResource.getTsFileID(), true); readerMap.put(tsFileResource, reader); deviceIteratorMap.put(tsFileResource, reader.getAllDevicesIteratorWithIsAligned()); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/writer/ReadPointCrossCompactionWriter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/writer/ReadPointCrossCompactionWriter.java index a3c24af565c..231bd753d77 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/writer/ReadPointCrossCompactionWriter.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/writer/ReadPointCrossCompactionWriter.java @@ -73,7 +73,8 @@ public class ReadPointCrossCompactionWriter extends AbstractCrossCompactionWrite @Override protected TsFileSequenceReader getFileReader(TsFileResource resource) throws IOException { - return FileReaderManager.getInstance().get(resource.getTsFilePath(), true); + return FileReaderManager.getInstance() + .get(resource.getTsFilePath(), resource.getTsFileID(), true); } @Override diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java index ab25275aebe..34070a848c9 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java @@ -1670,6 +1670,7 @@ public class TsFileProcessor { deviceID, measurement, filePath, + tsFileResource.getTsFileID(), false, valueChunkMetaData.getOffsetOfChunkHeader(), valueChunkMetaData.getStatistics(), @@ -1694,6 +1695,7 @@ public class TsFileProcessor { deviceID, measurement, filePath, + tsFileResource.getTsFileID(), false, chunkMetadata.getOffsetOfChunkHeader(), chunkMetadata.getStatistics())); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/control/FileReaderManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/control/FileReaderManager.java index a814a1e148b..41386c9b69d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/control/FileReaderManager.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/control/FileReaderManager.java @@ -20,6 +20,7 @@ package org.apache.iotdb.db.storageengine.dataregion.read.control; import org.apache.iotdb.commons.utils.TestOnly; +import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileID; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; import org.apache.tsfile.common.conf.TSFileConfig; @@ -58,25 +59,25 @@ public class FileReaderManager { * the key of closedFileReaderMap is the file path and the value of closedFileReaderMap is the * corresponding reader. */ - private Map<String, TsFileSequenceReader> closedFileReaderMap; + private Map<TsFileID, TsFileSequenceReader> closedFileReaderMap; /** * the key of unclosedFileReaderMap is the file path and the value of unclosedFileReaderMap is the * corresponding reader. */ - private Map<String, TsFileSequenceReader> unclosedFileReaderMap; + private Map<TsFileID, TsFileSequenceReader> unclosedFileReaderMap; /** * the key of closedFileReaderMap is the file path and the value of closedFileReaderMap is the * file's reference count. */ - private Map<String, AtomicInteger> closedReferenceMap; + private Map<TsFileID, AtomicInteger> closedReferenceMap; /** * the key of unclosedFileReaderMap is the file path and the value of unclosedFileReaderMap is the * file's reference count. */ - private Map<String, AtomicInteger> unclosedReferenceMap; + private Map<TsFileID, AtomicInteger> unclosedReferenceMap; private FileReaderManager() { closedFileReaderMap = new ConcurrentHashMap<>(); @@ -89,14 +90,14 @@ public class FileReaderManager { return FileReaderManagerHelper.INSTANCE; } - public synchronized void closeFileAndRemoveReader(String filePath) throws IOException { - closedReferenceMap.remove(filePath); - TsFileSequenceReader reader = closedFileReaderMap.remove(filePath); + public synchronized void closeFileAndRemoveReader(TsFileID tsFileID) throws IOException { + closedReferenceMap.remove(tsFileID); + TsFileSequenceReader reader = closedFileReaderMap.remove(tsFileID); if (reader != null) { reader.close(); } - unclosedReferenceMap.remove(filePath); - reader = unclosedFileReaderMap.remove(filePath); + unclosedReferenceMap.remove(tsFileID); + reader = unclosedFileReaderMap.remove(tsFileID); if (reader != null) { reader.close(); } @@ -107,15 +108,16 @@ public class FileReaderManager { * exists, just get it from closedFileReaderMap or unclosedFileReaderMap depending on isClosing . * Otherwise a new reader will be created and cached. * - * @param filePath the path of the file, of which the reader is desired. + * @param filePath the path of the tsfile + * @param tsFileID the id of the tsfile, of which the reader is desired. * @param isClosed whether the corresponding file still receives insertions or not. * @return the reader of the file specified by filePath. * @throws IOException when reader cannot be created. */ @SuppressWarnings("squid:S2095") - public synchronized TsFileSequenceReader get(String filePath, boolean isClosed) + public synchronized TsFileSequenceReader get(String filePath, TsFileID tsFileID, boolean isClosed) throws IOException { - return get(filePath, isClosed, null); + return get(filePath, tsFileID, isClosed, null); } /** @@ -123,7 +125,8 @@ public class FileReaderManager { * exists, just get it from closedFileReaderMap or unclosedFileReaderMap depending on isClosing . * Otherwise a new reader will be created and cached. * - * @param filePath the path of the file, of which the reader is desired. + * @param filePath the path of the tsfile + * @param tsFileID the id of the tsfile, of which the reader is desired. * @param isClosed whether the corresponding file still receives insertions or not. * @param ioSizeRecorder can be null * @return the reader of the file specified by filePath. @@ -131,11 +134,12 @@ public class FileReaderManager { */ @SuppressWarnings("squid:S2095") public synchronized TsFileSequenceReader get( - String filePath, boolean isClosed, LongConsumer ioSizeRecorder) throws IOException { + String filePath, TsFileID tsFileID, boolean isClosed, LongConsumer ioSizeRecorder) + throws IOException { - Map<String, TsFileSequenceReader> readerMap = + Map<TsFileID, TsFileSequenceReader> readerMap = !isClosed ? unclosedFileReaderMap : closedFileReaderMap; - if (!readerMap.containsKey(filePath)) { + if (!readerMap.containsKey(tsFileID)) { int currentOpenedReaderCount = readerMap.size(); if (currentOpenedReaderCount >= MAX_CACHED_FILE_SIZE && (currentOpenedReaderCount % PRINT_INTERVAL == 0)) { @@ -156,11 +160,11 @@ public class FileReaderManager { "The version of TsFile %s is not correct: %s", filePath, versionNumber)); } } - readerMap.put(filePath, tsFileReader); + readerMap.put(tsFileID, tsFileReader); return tsFileReader; } - return readerMap.get(filePath); + return readerMap.get(tsFileID); } /** @@ -172,11 +176,11 @@ public class FileReaderManager { synchronized (this) { if (!isClosed) { unclosedReferenceMap - .computeIfAbsent(tsFile.getTsFilePath(), k -> new AtomicInteger()) + .computeIfAbsent(tsFile.getTsFileID(), k -> new AtomicInteger()) .getAndIncrement(); } else { closedReferenceMap - .computeIfAbsent(tsFile.getTsFilePath(), k -> new AtomicInteger()) + .computeIfAbsent(tsFile.getTsFileID(), k -> new AtomicInteger()) .getAndIncrement(); } } @@ -188,29 +192,30 @@ public class FileReaderManager { */ public void decreaseFileReaderReference(TsFileResource tsFile, boolean isClosed) { synchronized (this) { - if (!isClosed && unclosedReferenceMap.containsKey(tsFile.getTsFilePath())) { - if (unclosedReferenceMap.get(tsFile.getTsFilePath()).decrementAndGet() == 0) { - closeUnUsedReaderAndRemoveRef(tsFile.getTsFilePath(), false); + if (!isClosed && unclosedReferenceMap.containsKey(tsFile.getTsFileID())) { + if (unclosedReferenceMap.get(tsFile.getTsFileID()).decrementAndGet() == 0) { + closeUnUsedReaderAndRemoveRef(tsFile.getTsFilePath(), tsFile.getTsFileID(), false); } - } else if (closedReferenceMap.containsKey(tsFile.getTsFilePath()) - && (closedReferenceMap.get(tsFile.getTsFilePath()).decrementAndGet() == 0)) { - closeUnUsedReaderAndRemoveRef(tsFile.getTsFilePath(), true); + } else if (closedReferenceMap.containsKey(tsFile.getTsFileID()) + && (closedReferenceMap.get(tsFile.getTsFileID()).decrementAndGet() == 0)) { + closeUnUsedReaderAndRemoveRef(tsFile.getTsFilePath(), tsFile.getTsFileID(), true); } } tsFile.readUnlock(); } - private void closeUnUsedReaderAndRemoveRef(String tsFilePath, boolean isClosed) { - Map<String, TsFileSequenceReader> readerMap = + private void closeUnUsedReaderAndRemoveRef( + String tsFilePath, TsFileID tsFileID, boolean isClosed) { + Map<TsFileID, TsFileSequenceReader> readerMap = isClosed ? closedFileReaderMap : unclosedFileReaderMap; - Map<String, AtomicInteger> refMap = isClosed ? closedReferenceMap : unclosedReferenceMap; + Map<TsFileID, AtomicInteger> refMap = isClosed ? closedReferenceMap : unclosedReferenceMap; synchronized (this) { // check ref num again - if (refMap.get(tsFilePath).get() != 0) { + if (refMap.get(tsFileID).get() != 0) { return; } - TsFileSequenceReader reader = readerMap.get(tsFilePath); + TsFileSequenceReader reader = readerMap.get(tsFileID); if (reader != null) { try { reader.close(); @@ -218,8 +223,8 @@ public class FileReaderManager { logger.error("Can not close TsFileSequenceReader {} !", reader.getFileName(), e); } } - readerMap.remove(tsFilePath); - refMap.remove(tsFilePath); + readerMap.remove(tsFileID); + refMap.remove(tsFileID); if (resourceLogger.isDebugEnabled()) { resourceLogger.debug("{} TsFileReader is closed because of no reference.", tsFilePath); } @@ -233,10 +238,10 @@ public class FileReaderManager { * @throws IOException if failed to close file handlers, IOException will be thrown */ public synchronized void closeAndRemoveAllOpenedReaders() throws IOException { - Iterator<Map.Entry<String, TsFileSequenceReader>> iterator = + Iterator<Map.Entry<TsFileID, TsFileSequenceReader>> iterator = closedFileReaderMap.entrySet().iterator(); while (iterator.hasNext()) { - Map.Entry<String, TsFileSequenceReader> entry = iterator.next(); + Map.Entry<TsFileID, TsFileSequenceReader> entry = iterator.next(); entry.getValue().close(); if (resourceLogger.isDebugEnabled()) { resourceLogger.debug("{} closedTsFileReader is closed.", entry.getKey()); @@ -246,7 +251,7 @@ public class FileReaderManager { } iterator = unclosedFileReaderMap.entrySet().iterator(); while (iterator.hasNext()) { - Map.Entry<String, TsFileSequenceReader> entry = iterator.next(); + Map.Entry<TsFileID, TsFileSequenceReader> entry = iterator.next(); entry.getValue().close(); if (resourceLogger.isDebugEnabled()) { resourceLogger.debug("{} unclosedTsFileReader is closed.", entry.getKey()); @@ -258,17 +263,17 @@ public class FileReaderManager { /** This method is only for unit tests. */ public synchronized boolean contains(TsFileResource tsFile, boolean isClosed) { - return (isClosed && closedFileReaderMap.containsKey(tsFile.getTsFilePath())) - || (!isClosed && unclosedFileReaderMap.containsKey(tsFile.getTsFilePath())); + return (isClosed && closedFileReaderMap.containsKey(tsFile.getTsFileID())) + || (!isClosed && unclosedFileReaderMap.containsKey(tsFile.getTsFileID())); } @TestOnly - public Map<String, TsFileSequenceReader> getClosedFileReaderMap() { + public Map<TsFileID, TsFileSequenceReader> getClosedFileReaderMap() { return closedFileReaderMap; } @TestOnly - public Map<String, TsFileSequenceReader> getUnclosedFileReaderMap() { + public Map<TsFileID, TsFileSequenceReader> getUnclosedFileReaderMap() { return unclosedFileReaderMap; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/impl/ClosedFileScanHandleImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/impl/ClosedFileScanHandleImpl.java index 1bbc6dc47c4..9236924d192 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/impl/ClosedFileScanHandleImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/impl/ClosedFileScanHandleImpl.java @@ -30,6 +30,7 @@ import org.apache.iotdb.db.storageengine.dataregion.read.filescan.model.Abstract import org.apache.iotdb.db.storageengine.dataregion.read.filescan.model.AbstractDeviceChunkMetaData; import org.apache.iotdb.db.storageengine.dataregion.read.filescan.model.AlignedDeviceChunkMetaData; import org.apache.iotdb.db.storageengine.dataregion.read.filescan.model.DeviceChunkMetaData; +import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileID; import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource; import org.apache.iotdb.db.storageengine.dataregion.tsfile.timeindex.DeviceTimeIndex; import org.apache.iotdb.db.storageengine.dataregion.tsfile.timeindex.ITimeIndex; @@ -117,7 +118,8 @@ public class ClosedFileScanHandleImpl implements IFileScanHandle { @Override public Iterator<AbstractDeviceChunkMetaData> getAllDeviceChunkMetaData() throws IOException { - TsFileSequenceReader tsFileReader = FileReaderManager.getInstance().get(getFilePath(), true); + TsFileSequenceReader tsFileReader = + FileReaderManager.getInstance().get(getFilePath(), tsFileResource.getTsFileID(), true); TsFileDeviceIterator deviceIterator = tsFileReader.getAllDevicesIteratorWithIsAligned(); List<AbstractDeviceChunkMetaData> deviceChunkMetaDataList = new LinkedList<>(); @@ -170,10 +172,12 @@ public class ClosedFileScanHandleImpl implements IFileScanHandle { List<Statistics<? extends Serializable>> statisticsList, List<Integer> orderedIndexList) { String filePath = tsFileResource.getTsFilePath(); + TsFileID tsFileID = tsFileResource.getTsFileID(); List<IChunkHandle> chunkHandleList = new ArrayList<>(); for (int i : orderedIndexList) { AbstractChunkOffset chunkOffset = chunkInfoList.get(i); - chunkHandleList.add(chunkOffset.generateChunkHandle(filePath, statisticsList.get(i))); + chunkHandleList.add( + chunkOffset.generateChunkHandle(filePath, tsFileID, statisticsList.get(i))); } return chunkHandleList.iterator(); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/impl/DiskAlignedChunkHandleImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/impl/DiskAlignedChunkHandleImpl.java index b231a4bc118..789c6d8b4b0 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/impl/DiskAlignedChunkHandleImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/impl/DiskAlignedChunkHandleImpl.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.storageengine.dataregion.read.filescan.impl; +import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileID; import org.apache.iotdb.db.storageengine.dataregion.utils.SharedTimeDataBuffer; import org.apache.tsfile.file.metadata.IDeviceID; @@ -41,11 +42,12 @@ public class DiskAlignedChunkHandleImpl extends DiskChunkHandleImpl { IDeviceID deviceID, String measurement, String filePath, + TsFileID tsFileID, boolean isTsFileClosed, long offset, Statistics<? extends Serializable> chunkStatistic, SharedTimeDataBuffer sharedTimeDataBuffer) { - super(deviceID, measurement, filePath, isTsFileClosed, offset, chunkStatistic); + super(deviceID, measurement, filePath, tsFileID, isTsFileClosed, offset, chunkStatistic); this.sharedTimeDataBuffer = sharedTimeDataBuffer; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/impl/DiskChunkHandleImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/impl/DiskChunkHandleImpl.java index 68ad659d90f..0bbbdd604f6 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/impl/DiskChunkHandleImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/impl/DiskChunkHandleImpl.java @@ -21,6 +21,7 @@ package org.apache.iotdb.db.storageengine.dataregion.read.filescan.impl; import org.apache.iotdb.db.storageengine.dataregion.read.control.FileReaderManager; import org.apache.iotdb.db.storageengine.dataregion.read.filescan.IChunkHandle; +import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileID; import org.apache.tsfile.common.conf.TSFileDescriptor; import org.apache.tsfile.encoding.decoder.Decoder; @@ -46,6 +47,7 @@ public class DiskChunkHandleImpl implements IChunkHandle { private final IDeviceID deviceID; private final String measurement; private final String filePath; + private final TsFileID tsFileID; protected ChunkHeader currentChunkHeader; protected PageHeader currentPageHeader; protected ByteBuffer currentChunkDataBuffer; @@ -63,6 +65,7 @@ public class DiskChunkHandleImpl implements IChunkHandle { IDeviceID deviceID, String measurement, String filePath, + TsFileID tsFileID, boolean isTsFileClosed, long offset, Statistics<? extends Serializable> chunkStatistics) { @@ -71,6 +74,7 @@ public class DiskChunkHandleImpl implements IChunkHandle { this.chunkStatistic = chunkStatistics; this.offset = offset; this.filePath = filePath; + this.tsFileID = tsFileID; this.tsFileClosed = isTsFileClosed; } @@ -94,7 +98,8 @@ public class DiskChunkHandleImpl implements IChunkHandle { public void nextPage() throws IOException { // read chunk from disk if needed if (currentChunkDataBuffer == null) { - TsFileSequenceReader reader = FileReaderManager.getInstance().get(filePath, tsFileClosed); + TsFileSequenceReader reader = + FileReaderManager.getInstance().get(filePath, tsFileID, tsFileClosed); init(reader); } if (currentChunkDataBuffer.hasRemaining()) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/model/AbstractChunkOffset.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/model/AbstractChunkOffset.java index 2a66a1fde6f..f115486641b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/model/AbstractChunkOffset.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/model/AbstractChunkOffset.java @@ -20,6 +20,7 @@ package org.apache.iotdb.db.storageengine.dataregion.read.filescan.model; import org.apache.iotdb.db.storageengine.dataregion.read.filescan.IChunkHandle; +import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileID; import org.apache.tsfile.file.metadata.IDeviceID; import org.apache.tsfile.file.metadata.statistics.Statistics; @@ -39,7 +40,7 @@ public abstract class AbstractChunkOffset { } public abstract IChunkHandle generateChunkHandle( - String filePath, Statistics<? extends Serializable> statistics); + String filePath, TsFileID tsFileID, Statistics<? extends Serializable> statistics); public IDeviceID getDeviceID() { return deviceID; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/model/AlignedChunkOffset.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/model/AlignedChunkOffset.java index 2b4391b644b..66e4cc616ff 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/model/AlignedChunkOffset.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/model/AlignedChunkOffset.java @@ -21,6 +21,7 @@ package org.apache.iotdb.db.storageengine.dataregion.read.filescan.model; import org.apache.iotdb.db.storageengine.dataregion.read.filescan.IChunkHandle; import org.apache.iotdb.db.storageengine.dataregion.read.filescan.impl.DiskAlignedChunkHandleImpl; +import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileID; import org.apache.iotdb.db.storageengine.dataregion.utils.SharedTimeDataBuffer; import org.apache.tsfile.file.metadata.IDeviceID; @@ -44,11 +45,12 @@ public class AlignedChunkOffset extends AbstractChunkOffset { @Override public IChunkHandle generateChunkHandle( - String filePath, Statistics<? extends Serializable> statistics) { + String filePath, TsFileID tsFileID, Statistics<? extends Serializable> statistics) { return new DiskAlignedChunkHandleImpl( getDeviceID(), getMeasurement(), filePath, + tsFileID, true, getOffSet(), statistics, diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/model/ChunkOffset.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/model/ChunkOffset.java index f48b5396c00..f4b27a3ba9e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/model/ChunkOffset.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/filescan/model/ChunkOffset.java @@ -21,6 +21,7 @@ package org.apache.iotdb.db.storageengine.dataregion.read.filescan.model; import org.apache.iotdb.db.storageengine.dataregion.read.filescan.IChunkHandle; import org.apache.iotdb.db.storageengine.dataregion.read.filescan.impl.DiskChunkHandleImpl; +import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileID; import org.apache.tsfile.file.metadata.IDeviceID; import org.apache.tsfile.file.metadata.statistics.Statistics; @@ -35,8 +36,8 @@ public class ChunkOffset extends AbstractChunkOffset { @Override public IChunkHandle generateChunkHandle( - String filePath, Statistics<? extends Serializable> statistics) { + String filePath, TsFileID tsFileID, Statistics<? extends Serializable> statistics) { return new DiskChunkHandleImpl( - getDeviceID(), getMeasurement(), filePath, true, getOffSet(), statistics); + getDeviceID(), getMeasurement(), filePath, tsFileID, true, getOffSet(), statistics); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/buffer/BloomFilterCacheTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/buffer/BloomFilterCacheTest.java index e6a65d5eed9..d66a17935c9 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/buffer/BloomFilterCacheTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/buffer/BloomFilterCacheTest.java @@ -96,7 +96,7 @@ public class BloomFilterCacheTest { TsFileID tsFileID = new TsFileID(filePath); BloomFilter bloomFilter = bloomFilterCache.get(new BloomFilterCache.BloomFilterCacheKey(filePath, tsFileID)); - TsFileSequenceReader reader = FileReaderManager.getInstance().get(filePath, true); + TsFileSequenceReader reader = FileReaderManager.getInstance().get(filePath, tsFileID, true); BloomFilter bloomFilter1 = reader.readBloomFilter(); Assert.assertEquals(bloomFilter1, bloomFilter); reader.close(); @@ -115,7 +115,7 @@ public class BloomFilterCacheTest { BloomFilterCache.BloomFilterCacheKey key = new BloomFilterCache.BloomFilterCacheKey(path, tsFileID); BloomFilter bloomFilter = bloomFilterCache.get(key); - TsFileSequenceReader reader = FileReaderManager.getInstance().get(path, true); + TsFileSequenceReader reader = FileReaderManager.getInstance().get(path, tsFileID, true); BloomFilter bloomFilter1 = reader.readBloomFilter(); Assert.assertEquals(bloomFilter1, bloomFilter); bloomFilterCache.remove(key); @@ -136,7 +136,7 @@ public class BloomFilterCacheTest { BloomFilterCache.BloomFilterCacheKey key = new BloomFilterCache.BloomFilterCacheKey(path, tsFileID); BloomFilter bloomFilter = bloomFilterCache.get(key); - TsFileSequenceReader reader = FileReaderManager.getInstance().get(path, true); + TsFileSequenceReader reader = FileReaderManager.getInstance().get(path, tsFileID, true); BloomFilter bloomFilter1 = reader.readBloomFilter(); Assert.assertEquals(bloomFilter1, bloomFilter); reader.close(); diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionWithMinTimestampTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionWithMinTimestampTest.java index 2b3c5d51c86..c23db43eeb1 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionWithMinTimestampTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionWithMinTimestampTest.java @@ -65,10 +65,10 @@ public class CompactionWithMinTimestampTest extends AbstractCompactionTest { super.tearDown(); Thread.currentThread().setName(oldThreadName); for (TsFileResource tsFileResource : seqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } for (TsFileResource tsFileResource : unseqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastAlignedCrossCompactionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastAlignedCrossCompactionTest.java index d7d415c8409..f7b03cee911 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastAlignedCrossCompactionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastAlignedCrossCompactionTest.java @@ -77,10 +77,10 @@ public class FastAlignedCrossCompactionTest extends AbstractCompactionTest { public void tearDown() throws IOException, StorageEngineException { super.tearDown(); for (TsFileResource tsFileResource : seqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } for (TsFileResource tsFileResource : unseqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastCrossCompactionPerformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastCrossCompactionPerformerTest.java index 55d7636e64a..cc31220895a 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastCrossCompactionPerformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastCrossCompactionPerformerTest.java @@ -96,10 +96,10 @@ public class FastCrossCompactionPerformerTest extends AbstractCompactionTest { validateSeqFiles(); super.tearDown(); for (TsFileResource tsFileResource : seqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } for (TsFileResource tsFileResource : unseqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } targetResources.clear(); } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastInnerCompactionPerformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastInnerCompactionPerformerTest.java index 26e7b4554a1..5ca49febb25 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastInnerCompactionPerformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastInnerCompactionPerformerTest.java @@ -95,10 +95,10 @@ public class FastInnerCompactionPerformerTest extends AbstractCompactionTest { public void tearDown() throws IOException, StorageEngineException { super.tearDown(); for (TsFileResource tsFileResource : seqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } for (TsFileResource tsFileResource : unseqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } IoTDBDescriptor.getInstance() .getConfig() diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastNonAlignedCrossCompactionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastNonAlignedCrossCompactionTest.java index 7236b402a83..295bb1201d3 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastNonAlignedCrossCompactionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/FastNonAlignedCrossCompactionTest.java @@ -79,10 +79,10 @@ public class FastNonAlignedCrossCompactionTest extends AbstractCompactionTest { public void tearDown() throws IOException, StorageEngineException { super.tearDown(); for (TsFileResource tsFileResource : seqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } for (TsFileResource tsFileResource : unseqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadChunkInnerCompactionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadChunkInnerCompactionTest.java index 7e7c74b2b97..6aef117b80a 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadChunkInnerCompactionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadChunkInnerCompactionTest.java @@ -90,10 +90,10 @@ public class ReadChunkInnerCompactionTest extends AbstractCompactionTest { public void tearDown() throws IOException, StorageEngineException { super.tearDown(); for (TsFileResource tsFileResource : seqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } for (TsFileResource tsFileResource : unseqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadPointAlignedCrossCompactionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadPointAlignedCrossCompactionTest.java index 447791d58a6..b9b3ec35590 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadPointAlignedCrossCompactionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadPointAlignedCrossCompactionTest.java @@ -80,10 +80,10 @@ public class ReadPointAlignedCrossCompactionTest extends AbstractCompactionTest super.tearDown(); Thread.currentThread().setName(oldThreadName); for (TsFileResource tsFileResource : seqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } for (TsFileResource tsFileResource : unseqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadPointCompactionPerformerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadPointCompactionPerformerTest.java index 9a0590aa13c..c1582d9b6ed 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadPointCompactionPerformerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadPointCompactionPerformerTest.java @@ -87,10 +87,10 @@ public class ReadPointCompactionPerformerTest extends AbstractCompactionTest { super.tearDown(); Thread.currentThread().setName(oldThreadName); for (TsFileResource tsFileResource : seqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } for (TsFileResource tsFileResource : unseqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadPointNonAlignedCrossCompactionTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadPointNonAlignedCrossCompactionTest.java index d0a0543e35d..657117a5bc6 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadPointNonAlignedCrossCompactionTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/ReadPointNonAlignedCrossCompactionTest.java @@ -81,10 +81,10 @@ public class ReadPointNonAlignedCrossCompactionTest extends AbstractCompactionTe super.tearDown(); Thread.currentThread().setName(oldThreadName); for (TsFileResource tsFileResource : seqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } for (TsFileResource tsFileResource : unseqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionSelectorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionSelectorTest.java index 02408e24c80..88cd04bb8e6 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionSelectorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/CrossSpaceCompactionSelectorTest.java @@ -63,10 +63,10 @@ public class CrossSpaceCompactionSelectorTest extends AbstractCompactionTest { public void tearDown() throws IOException, StorageEngineException { super.tearDown(); for (TsFileResource tsFileResource : seqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } for (TsFileResource tsFileResource : unseqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSpaceCompactionSelectorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSpaceCompactionSelectorTest.java index 46774b88fff..151238f657a 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSpaceCompactionSelectorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/InnerSpaceCompactionSelectorTest.java @@ -57,10 +57,10 @@ public class InnerSpaceCompactionSelectorTest extends AbstractCompactionTest { public void tearDown() throws IOException, StorageEngineException { super.tearDown(); for (TsFileResource tsFileResource : seqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } for (TsFileResource tsFileResource : unseqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/sizetiered/SizeTieredCompactionRecoverTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/sizetiered/SizeTieredCompactionRecoverTest.java index 42dd5375864..b95fb1a81e5 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/sizetiered/SizeTieredCompactionRecoverTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/inner/sizetiered/SizeTieredCompactionRecoverTest.java @@ -1435,7 +1435,7 @@ public class SizeTieredCompactionRecoverTest extends AbstractInnerSpaceCompactio private void closeTsFileSequenceReader() throws IOException { for (TsFileResource tsFileResource : seqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/MultiTsFileDeviceIteratorTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/MultiTsFileDeviceIteratorTest.java index 863efce14cf..78adf898051 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/MultiTsFileDeviceIteratorTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/utils/MultiTsFileDeviceIteratorTest.java @@ -81,10 +81,10 @@ public class MultiTsFileDeviceIteratorTest extends AbstractCompactionTest { public void tearDown() throws IOException, StorageEngineException { super.tearDown(); for (TsFileResource tsFileResource : seqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } for (TsFileResource tsFileResource : unseqResources) { - FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath()); + FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFileID()); } Thread.currentThread().setName(oldThreadName); } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/control/FileReaderManagerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/control/FileReaderManagerTest.java index 11dcf4193e2..a174b4a33e2 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/control/FileReaderManagerTest.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/control/FileReaderManagerTest.java @@ -80,7 +80,7 @@ public class FileReaderManagerTest { for (int i = 1; i <= 6; i++) { TsFileResource tsFile = tsFileResources[i]; testManager.addFilePathToMap(1L, tsFile, false); - manager.get(tsFile.getTsFilePath(), false); + manager.get(tsFile.getTsFilePath(), tsFile.getTsFileID(), false); Assert.assertTrue(manager.contains(tsFile, false)); } for (int i = 1; i <= 6; i++) { @@ -103,7 +103,7 @@ public class FileReaderManagerTest { for (int i = 4; i <= MAX_FILE_SIZE; i++) { TsFileResource tsFile = tsFileResources[i]; testManager.addFilePathToMap(2L, tsFile, false); - manager.get(tsFile.getTsFilePath(), false); + manager.get(tsFile.getTsFilePath(), tsFile.getTsFileID(), false); Assert.assertTrue(manager.contains(tsFile, false)); } for (int i = 4; i <= MAX_FILE_SIZE; i++) {