This is an automated email from the ASF dual-hosted git repository.
haonan 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 d78413ec657 Print log when read resource error (#12666)
d78413ec657 is described below
commit d78413ec65733ba3e142750ed1d42c2395f2cf09
Author: Haonan <[email protected]>
AuthorDate: Wed Jun 5 20:19:40 2024 +0800
Print log when read resource error (#12666)
---
.../dataregion/tsfile/TsFileResource.java | 22 ++++++++++++++++++++--
.../tsfile/timeindex/DeviceTimeIndex.java | 16 ++++++++++++++++
.../dataregion/tsfile/timeindex/FileTimeIndex.java | 5 +++++
3 files changed, 41 insertions(+), 2 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/TsFileResource.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/TsFileResource.java
index cdb5bca403e..45c319ec4b8 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/TsFileResource.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/TsFileResource.java
@@ -388,12 +388,30 @@ public class TsFileResource {
}
public long getStartTime(IDeviceID deviceId) {
- return deviceId == null ? getFileStartTime() :
timeIndex.getStartTime(deviceId);
+ try {
+ return deviceId == null ? getFileStartTime() :
timeIndex.getStartTime(deviceId);
+ } catch (Exception e) {
+ LOGGER.error(
+ "meet error when getStartTime of {} in file {}", deviceId,
file.getAbsolutePath(), e);
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("TimeIndex = {}", timeIndex);
+ }
+ throw e;
+ }
}
/** open file's end time is Long.MIN_VALUE */
public long getEndTime(IDeviceID deviceId) {
- return deviceId == null ? getFileEndTime() :
timeIndex.getEndTime(deviceId);
+ try {
+ return deviceId == null ? getFileEndTime() :
timeIndex.getEndTime(deviceId);
+ } catch (Exception e) {
+ LOGGER.error(
+ "meet error when getEndTime of {} in file {}", deviceId,
file.getAbsolutePath(), e);
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("TimeIndex = {}", timeIndex);
+ }
+ throw e;
+ }
}
public long getOrderTime(IDeviceID deviceId, boolean ascending) {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/DeviceTimeIndex.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/DeviceTimeIndex.java
index 6b36f9ae56e..f233261d076 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/DeviceTimeIndex.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/DeviceTimeIndex.java
@@ -450,4 +450,20 @@ public class DeviceTimeIndex implements ITimeIndex {
public byte getTimeIndexType() {
return DEVICE_TIME_INDEX_TYPE;
}
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append(" DeviceIndexMapSize = ").append(deviceToIndex.size());
+ builder.append(" startTimeLength = ").append(startTimes.length);
+ builder.append(" endTimeLength = ").append(endTimes.length);
+ builder.append(" DeviceIndexMap = [");
+ deviceToIndex.forEach(
+ (key, value) ->
+ builder.append(" device = ").append(key).append(", index =
").append(value));
+ builder.append("]");
+ builder.append(" StartTimes = ").append(Arrays.toString(startTimes));
+ builder.append(" EndTimes = ").append(Arrays.toString(endTimes));
+ return builder.toString();
+ }
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/FileTimeIndex.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/FileTimeIndex.java
index 679413d462c..c6ffb6821f8 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/FileTimeIndex.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/tsfile/timeindex/FileTimeIndex.java
@@ -247,4 +247,9 @@ public class FileTimeIndex implements ITimeIndex {
public byte getTimeIndexType() {
return FILE_TIME_INDEX_TYPE;
}
+
+ @Override
+ public String toString() {
+ return " StartTime = " + startTime + " EndTime = " + endTime;
+ }
}