From f32543af190be2df22fa686e277bab3f8d2bcb45 Mon Sep 17 00:00:00 2001 From: HTHou Date: Wed, 5 Jun 2024 16:46:35 +0800 Subject: [PATCH 1/3] Print log when read resource error --- .../dataregion/tsfile/TsFileResource.java | 21 +++++++++++++++++-- .../tsfile/timeindex/DeviceTimeIndex.java | 16 ++++++++++++++ .../tsfile/timeindex/FileTimeIndex.java | 5 +++++ 3 files changed, 40 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 cdb5bca403e7e..ffefdb3f51ece 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,29 @@ 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()); + if (LOGGER.isDebugEnabled()) { + LOGGER.error("TimeIndex = {}", timeIndex.toString()); + } + 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()); + if (LOGGER.isDebugEnabled()) { + LOGGER.error("TimeIndex = {}", timeIndex.toString()); + } + 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..5a1feb8e68e8d 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 " StartTimes = " + startTime + " EndTimes = " + endTime; + } } From fb4b292019a6bc9c82112f961c634667a067b68a Mon Sep 17 00:00:00 2001 From: HTHou Date: Wed, 5 Jun 2024 16:47:56 +0800 Subject: [PATCH 2/3] Print log when read resource error --- .../db/storageengine/dataregion/tsfile/TsFileResource.java | 4 ++-- 1 file changed, 2 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 ffefdb3f51ece..b88381cca0324 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 @@ -394,7 +394,7 @@ public long getStartTime(IDeviceID deviceId) { LOGGER.error( "meet error when getStartTime of {} in file {}", deviceId, file.getAbsolutePath()); if (LOGGER.isDebugEnabled()) { - LOGGER.error("TimeIndex = {}", timeIndex.toString()); + LOGGER.debug("TimeIndex = {}", timeIndex.toString()); } throw e; } @@ -407,7 +407,7 @@ public long getEndTime(IDeviceID deviceId) { } catch (Exception e) { LOGGER.error("meet error when getEndTime of {} in file {}", deviceId, file.getAbsolutePath()); if (LOGGER.isDebugEnabled()) { - LOGGER.error("TimeIndex = {}", timeIndex.toString()); + LOGGER.debug("TimeIndex = {}", timeIndex.toString()); } throw e; } From 20091923d69603a72e901c4fe6e535acb875fc74 Mon Sep 17 00:00:00 2001 From: HTHou Date: Wed, 5 Jun 2024 17:49:30 +0800 Subject: [PATCH 3/3] fix review --- .../storageengine/dataregion/tsfile/TsFileResource.java | 9 +++++---- .../dataregion/tsfile/timeindex/FileTimeIndex.java | 2 +- 2 files changed, 6 insertions(+), 5 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 b88381cca0324..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 @@ -392,9 +392,9 @@ public long getStartTime(IDeviceID deviceId) { return deviceId == null ? getFileStartTime() : timeIndex.getStartTime(deviceId); } catch (Exception e) { LOGGER.error( - "meet error when getStartTime of {} in file {}", deviceId, file.getAbsolutePath()); + "meet error when getStartTime of {} in file {}", deviceId, file.getAbsolutePath(), e); if (LOGGER.isDebugEnabled()) { - LOGGER.debug("TimeIndex = {}", timeIndex.toString()); + LOGGER.debug("TimeIndex = {}", timeIndex); } throw e; } @@ -405,9 +405,10 @@ public long getEndTime(IDeviceID deviceId) { try { return deviceId == null ? getFileEndTime() : timeIndex.getEndTime(deviceId); } catch (Exception e) { - LOGGER.error("meet error when getEndTime of {} in file {}", deviceId, file.getAbsolutePath()); + LOGGER.error( + "meet error when getEndTime of {} in file {}", deviceId, file.getAbsolutePath(), e); if (LOGGER.isDebugEnabled()) { - LOGGER.debug("TimeIndex = {}", timeIndex.toString()); + LOGGER.debug("TimeIndex = {}", timeIndex); } throw e; } 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 5a1feb8e68e8d..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 @@ -250,6 +250,6 @@ public byte getTimeIndexType() { @Override public String toString() { - return " StartTimes = " + startTime + " EndTimes = " + endTime; + return " StartTime = " + startTime + " EndTime = " + endTime; } }