From 16349e9ae3fcef072e611a20088cba6e76b72125 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E6=B2=9B=E8=BE=B0?= <45144903+choubenson@users.noreply.github.com> Date: Mon, 17 Jan 2022 23:45:07 +0800 Subject: [PATCH] [IOTDB-2417]Cross compaction selector bug (#4853) --- .../inplace/InplaceCompactionSelector.java | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/InplaceCompactionSelector.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/InplaceCompactionSelector.java index 6190fb45c4..691f1341c5 100644 --- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/InplaceCompactionSelector.java +++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/InplaceCompactionSelector.java @@ -132,25 +132,28 @@ public class InplaceCompactionSelector extends AbstractCrossSpaceCompactionSelec // cached during selection mergeResource.setCacheDeviceMeta(true); - AbstractCompactionTask compactionTask = - taskFactory.createTask( - logicalStorageGroupName, - virtualGroupId, - timePartition, - mergeResource, - storageGroupDir, - sequenceFileList, - unsequenceFileList, - mergeFiles[0], - mergeFiles[1], - fileSelector.getConcurrentMergeNum()); - CompactionTaskManager.getInstance().addTaskToWaitingQueue(compactionTask); - taskSubmitted = true; - LOGGER.info( - "{} [Compaction] submit a task with {} sequence file and {} unseq files", - logicalStorageGroupName + "-" + virtualGroupId, - mergeResource.getSeqFiles().size(), - mergeResource.getUnseqFiles().size()); + if (mergeFiles[0].size() > 0 && mergeFiles[1].size() > 0) { + AbstractCompactionTask compactionTask = + taskFactory.createTask( + logicalStorageGroupName, + virtualGroupId, + timePartition, + mergeResource, + storageGroupDir, + sequenceFileList, + unsequenceFileList, + mergeFiles[0], + mergeFiles[1], + fileSelector.getConcurrentMergeNum()); + CompactionTaskManager.getInstance().addTaskToWaitingQueue(compactionTask); + taskSubmitted = true; + LOGGER.info( + "{} [Compaction] submit a task with {} sequence file and {} unseq files", + logicalStorageGroupName + "-" + virtualGroupId, + mergeResource.getSeqFiles().size(), + mergeResource.getUnseqFiles().size()); + } + } catch (MergeException | IOException e) { LOGGER.error("{} cannot select file for cross space compaction", logicalStorageGroupName, e); } -- GitLab