This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 0dcb04086e3 Get correct TsFileSequenceReader from FileReaderManager
0dcb04086e3 is described below
commit 0dcb04086e3a1589fd77fb0f075a5d90e89c6c79
Author: Jackie Tien <[email protected]>
AuthorDate: Thu Nov 30 18:28:13 2023 +0800
Get correct TsFileSequenceReader from FileReaderManager
---
.../org/apache/iotdb/db/storageengine/buffer/ChunkCache.java | 10 ++++++++--
.../dataregion/read/reader/chunk/DiskAlignedChunkLoader.java | 6 ++++--
.../dataregion/read/reader/chunk/DiskChunkLoader.java | 6 ++++--
.../apache/iotdb/db/storageengine/buffer/ChunkCacheTest.java | 6 ++++--
4 files changed, 20 insertions(+), 8 deletions(-)
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 6fe3509994d..84d6f4f728b 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
@@ -83,7 +83,7 @@ public class ChunkCache {
long startTime = System.nanoTime();
try {
TsFileSequenceReader reader =
- FileReaderManager.getInstance().get(key.getFilePath(),
true);
+ FileReaderManager.getInstance().get(key.getFilePath(),
key.closed);
Chunk chunk = reader.readMemChunk(key.offsetOfChunkHeader);
// to save memory footprint, we don't save measurementId
in ChunkHeader of Chunk
chunk.getHeader().setMeasurementID(null);
@@ -180,13 +180,19 @@ public class ChunkCache {
private final long offsetOfChunkHeader;
- public ChunkCacheKey(String filePath, TsFileID tsfileId, long
offsetOfChunkHeader) {
+ // we don't need to compare this field, it's just used to correctly get
TsFileSequenceReader
+ // from FileReaderManager
+ private final boolean closed;
+
+ public ChunkCacheKey(
+ String filePath, TsFileID tsfileId, long offsetOfChunkHeader, boolean
closed) {
this.filePath = filePath;
this.regionId = tsfileId.regionId;
this.timePartitionId = tsfileId.timePartitionId;
this.tsFileVersion = tsfileId.fileVersion;
this.compactionVersion = tsfileId.compactionVersion;
this.offsetOfChunkHeader = offsetOfChunkHeader;
+ this.closed = closed;
}
public long getRetainedSizeInBytes() {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskAlignedChunkLoader.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskAlignedChunkLoader.java
index 51eba154041..c6c59578c67 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskAlignedChunkLoader.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskAlignedChunkLoader.java
@@ -82,7 +82,8 @@ public class DiskAlignedChunkLoader implements IChunkLoader {
new ChunkCache.ChunkCacheKey(
resource.getTsFilePath(),
resource.getTsFileID(),
- timeChunkMetadata.getOffsetOfChunkHeader()),
+ timeChunkMetadata.getOffsetOfChunkHeader(),
+ resource.isClosed()),
timeChunkMetadata.getDeleteIntervalList(),
timeChunkMetadata.getStatistics(),
debug);
@@ -96,7 +97,8 @@ public class DiskAlignedChunkLoader implements IChunkLoader {
new ChunkCache.ChunkCacheKey(
resource.getTsFilePath(),
resource.getTsFileID(),
- valueChunkMetadata.getOffsetOfChunkHeader()),
+ valueChunkMetadata.getOffsetOfChunkHeader(),
+ resource.isClosed()),
valueChunkMetadata.getDeleteIntervalList(),
valueChunkMetadata.getStatistics(),
debug));
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskChunkLoader.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskChunkLoader.java
index a08b47f4313..efa457262d8 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskChunkLoader.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/chunk/DiskChunkLoader.java
@@ -57,7 +57,8 @@ public class DiskChunkLoader implements IChunkLoader {
new ChunkCache.ChunkCacheKey(
resource.getTsFilePath(),
resource.getTsFileID(),
- chunkMetaData.getOffsetOfChunkHeader()),
+ chunkMetaData.getOffsetOfChunkHeader(),
+ resource.isClosed()),
chunkMetaData.getDeleteIntervalList(),
chunkMetaData.getStatistics(),
debug);
@@ -79,7 +80,8 @@ public class DiskChunkLoader implements IChunkLoader {
new ChunkCache.ChunkCacheKey(
resource.getTsFilePath(),
resource.getTsFileID(),
- chunkMetaData.getOffsetOfChunkHeader()),
+ chunkMetaData.getOffsetOfChunkHeader(),
+ resource.isClosed()),
chunkMetaData.getDeleteIntervalList(),
chunkMetaData.getStatistics(),
debug);
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/buffer/ChunkCacheTest.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/buffer/ChunkCacheTest.java
index 890ec3ffd94..0a10ce8f260 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/buffer/ChunkCacheTest.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/buffer/ChunkCacheTest.java
@@ -107,7 +107,8 @@ public class ChunkCacheTest {
new ChunkCache.ChunkCacheKey(
tsFileResource.getTsFilePath(),
tsFileResource.getTsFileID(),
- firstChunkMetadata.getOffsetOfChunkHeader()),
+ firstChunkMetadata.getOffsetOfChunkHeader(),
+ true),
firstChunkMetadata.getDeleteIntervalList(),
firstChunkMetadata.getStatistics(),
false);
@@ -122,7 +123,8 @@ public class ChunkCacheTest {
new ChunkCache.ChunkCacheKey(
tsFileResource.getTsFilePath(),
tsFileResource.getTsFileID(),
- chunkMetadataKey.getOffsetOfChunkHeader()),
+ chunkMetadataKey.getOffsetOfChunkHeader(),
+ true),
chunkMetadataKey.getDeleteIntervalList(),
chunkMetadataKey.getStatistics(),
false);