This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch dev/1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/dev/1.3 by this push:
new 1a3f960da6b Replace the key in FileReaderManager to TsFileID
1a3f960da6b is described below
commit 1a3f960da6be4f663e0edc93baf606905a9bff4a
Author: shuwenwei <[email protected]>
AuthorDate: Wed Aug 13 16:15:50 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++) {