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 cdb5bca403e7e..45c319ec4b8d0 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 long getTsFileSize() { } 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 6b36f9ae56e00..f233261d07616 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 Pair getPossibleStartTimeAndEndTime( 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 679413d462c8d..c6ffb6821f83c 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 Pair getPossibleStartTimeAndEndTime( public byte getTimeIndexType() { return FILE_TIME_INDEX_TYPE; } + + @Override + public String toString() { + return " StartTime = " + startTime + " EndTime = " + endTime; + } }