This is an automated email from the ASF dual-hosted git repository. qiaojialin pushed a commit to branch resource_debug in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit efc5c8420bd0ecc04f81652eb4384ebdb431ba87 Author: qiaojialin <[email protected]> AuthorDate: Tue Jul 13 17:35:47 2021 +0800 add some resource insert log --- .../db/engine/storagegroup/StorageGroupProcessor.java | 4 ++++ .../iotdb/db/engine/storagegroup/TsFileProcessor.java | 15 +++++++++++++++ .../iotdb/db/writelog/node/ExclusiveWriteLogNode.java | 5 +---- .../iotdb/tsfile/file/metadata/statistics/Statistics.java | 6 +++--- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java index d7b83fc..7d0e5ad 100755 --- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java +++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java @@ -890,6 +890,10 @@ public class StorageGroupProcessor { } try { + if (!config.isEnablePartition() && start != 0) { + logger.error("start index in InsertTabletPlan != 0"); + System.exit(1); + } tsFileProcessor.insertTablet(insertTabletPlan, start, end, results); } catch (WriteProcessRejectException e) { logger.warn("insert to TsFileProcessor rejected, {}", e.getMessage()); diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java index 422d78d..e175027 100644 --- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java +++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java @@ -811,6 +811,21 @@ public class TsFileProcessor { private void endFile() throws IOException, TsFileProcessorException { long closeStartTime = System.currentTimeMillis(); + + Map<String, List<ChunkMetadata>> deviceChunkMetadatas = writer.getDeviceChunkMetadataMap(); + + for (String device: tsFileResource.deviceToIndex.keySet()) { + long startTimeInResource = tsFileResource.getStartTime(device); + List<ChunkMetadata> chunkMetadatas = deviceChunkMetadatas.get(device); + for (ChunkMetadata chunkMetadata: chunkMetadatas) { + if (chunkMetadata.getStartTime() < startTimeInResource) { + logger.error("chunkMetadata's startTime: {} < startTimeInResource: {}", + chunkMetadata.getStartTime(), startTimeInResource); + System.exit(1); + } + } + } + tsFileResource.serialize(); writer.endFile(); tsFileResource.cleanCloseFlag(); diff --git a/server/src/main/java/org/apache/iotdb/db/writelog/node/ExclusiveWriteLogNode.java b/server/src/main/java/org/apache/iotdb/db/writelog/node/ExclusiveWriteLogNode.java index 680ac65..326c2bc 100644 --- a/server/src/main/java/org/apache/iotdb/db/writelog/node/ExclusiveWriteLogNode.java +++ b/server/src/main/java/org/apache/iotdb/db/writelog/node/ExclusiveWriteLogNode.java @@ -80,16 +80,13 @@ public class ExclusiveWriteLogNode implements WriteLogNode, Comparable<Exclusive } @Override - public void write(PhysicalPlan plan) throws IOException { + public void write(PhysicalPlan plan) { lock.writeLock().lock(); try { putLog(plan); if (bufferedLogNum >= config.getFlushWalThreshold()) { sync(); } - } catch (BufferOverflowException e) { - throw new IOException( - "Log cannot fit into the buffer, please increase wal_buffer_size", e); } finally { lock.writeLock().unlock(); } diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/Statistics.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/Statistics.java index 7a31494..9e56c4d 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/Statistics.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/Statistics.java @@ -165,7 +165,7 @@ public abstract class Statistics<T> { * @throws StatisticsClassException cannot merge statistics */ public void mergeStatistics(Statistics stats) { - if (this.getClass() == stats.getClass()) { + if (this.getType() == stats.getType()) { if (stats.startTime < this.startTime) { this.startTime = stats.startTime; } @@ -179,8 +179,8 @@ public abstract class Statistics<T> { } else { String thisClass = this.getClass().toString(); String statsClass = stats.getClass().toString(); - LOG.warn("Statistics classes mismatched,no merge: {} v.s. {}", thisClass, statsClass); - + LOG.error("Statistics datatype mismatched,no merge: {} v.s. {}", thisClass, statsClass); + System.exit(1); throw new StatisticsClassException(this.getClass(), stats.getClass()); } }
