This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/tsfile.git
The following commit(s) were added to refs/heads/develop by this push:
new b5c3e0ef0 Don't print exception log when thread is interrupted (#386)
b5c3e0ef0 is described below
commit b5c3e0ef0c2928e217ca2ceca8e33211a2930cd5
Author: shuwenwei <[email protected]>
AuthorDate: Fri Feb 7 15:25:21 2025 +0800
Don't print exception log when thread is interrupted (#386)
* don't print exception log when thread is interrupted
* modify DiskTSMIterator
---
.../org/apache/tsfile/write/writer/TsFileIOWriter.java | 13 ++++++++-----
.../write/writer/tsmiterator/DiskTSMIterator.java | 17 +++++++++--------
2 files changed, 17 insertions(+), 13 deletions(-)
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
index 54244ed08..85bea9c98 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
@@ -440,11 +440,7 @@ public class TsFileIOWriter implements AutoCloseable {
// serialize the SEPARATOR of MetaData
ReadWriteIOUtils.write(MetaMarker.SEPARATOR, out.wrapAsStream());
- TSMIterator tsmIterator =
- hasChunkMetadataInDisk
- ? TSMIterator.getTSMIteratorInDisk(
- chunkMetadataTempFile, chunkGroupMetadataList,
endPosInCMTForDevice)
- : TSMIterator.getTSMIteratorInMemory(chunkGroupMetadataList);
+ TSMIterator tsmIterator = getTSMIterator();
Map<IDeviceID, MetadataIndexNode> deviceMetadataIndexMap = new TreeMap<>();
Queue<MetadataIndexNode> measurementMetadataIndexQueue = new
ArrayDeque<>();
IDeviceID currentDevice = null;
@@ -532,6 +528,13 @@ public class TsFileIOWriter implements AutoCloseable {
ReadWriteIOUtils.write(size, out.wrapAsStream());
}
+ protected TSMIterator getTSMIterator() throws IOException {
+ return hasChunkMetadataInDisk
+ ? TSMIterator.getTSMIteratorInDisk(
+ chunkMetadataTempFile, chunkGroupMetadataList,
endPosInCMTForDevice)
+ : TSMIterator.getTSMIteratorInMemory(chunkGroupMetadataList);
+ }
+
/**
* get the length of normal OutputStream.
*
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/write/writer/tsmiterator/DiskTSMIterator.java
b/java/tsfile/src/main/java/org/apache/tsfile/write/writer/tsmiterator/DiskTSMIterator.java
index fd413b43a..44c596b1d 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/write/writer/tsmiterator/DiskTSMIterator.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/write/writer/tsmiterator/DiskTSMIterator.java
@@ -28,6 +28,7 @@ import org.apache.tsfile.file.metadata.IDeviceID.Deserializer;
import org.apache.tsfile.file.metadata.TimeseriesMetadata;
import org.apache.tsfile.read.common.Path;
import org.apache.tsfile.read.reader.LocalTsFileInput;
+import org.apache.tsfile.read.reader.TsFileInput;
import org.apache.tsfile.utils.Pair;
import org.apache.tsfile.utils.ReadWriteIOUtils;
@@ -51,8 +52,7 @@ public class DiskTSMIterator extends TSMIterator {
private static final Logger LOG =
LoggerFactory.getLogger(DiskTSMIterator.class);
private LinkedList<Long> endPosForEachDevice;
- private File cmtFile;
- private LocalTsFileInput input;
+ protected TsFileInput input;
private long fileLength = 0;
private long currentPos = 0;
private long nextEndPosForDevice = 0;
@@ -65,7 +65,6 @@ public class DiskTSMIterator extends TSMIterator {
LinkedList<Long> endPosForEachDevice)
throws IOException {
super(chunkGroupMetadataList);
- this.cmtFile = cmtFile;
this.endPosForEachDevice = endPosForEachDevice;
this.input = new LocalTsFileInput(cmtFile.toPath());
this.fileLength = cmtFile.length();
@@ -78,22 +77,24 @@ public class DiskTSMIterator extends TSMIterator {
}
@Override
- public Pair<Path, TimeseriesMetadata> next() {
+ public Pair<Path, TimeseriesMetadata> next() throws IOException {
try {
if (remainsInFile) {
// deserialize from file
- return getTimeSerisMetadataFromFile();
+ return getTimeSeriesMetadataFromFile();
} else {
// get from memory iterator
return super.next();
}
} catch (IOException e) {
- LOG.error("Meets IOException when reading timeseries metadata from
disk", e);
- return null;
+ if (!Thread.currentThread().isInterrupted()) {
+ LOG.error("Meets IOException when reading timeseries metadata from
disk", e);
+ }
+ throw e;
}
}
- private Pair<Path, TimeseriesMetadata> getTimeSerisMetadataFromFile() throws
IOException {
+ private Pair<Path, TimeseriesMetadata> getTimeSeriesMetadataFromFile()
throws IOException {
if (currentPos == nextEndPosForDevice) {
// deserialize the current device name
currentDevice =
Deserializer.DEFAULT_DESERIALIZER.deserializeFrom(input.wrapAsInputStream());