This is an automated email from the ASF dual-hosted git repository. jiangtian pushed a commit to branch fix_settle_with_deletion in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit a880779bcffc21b96450fd5140e41bcbcf13d68f Author: Tian Jiang <[email protected]> AuthorDate: Tue Nov 25 10:43:20 2025 +0800 Fix that settle compaction may lgnore some newly incoming deletions --- .../org/apache/iotdb/relational/it/db/it/IoTDBDeletionTableIT.java | 2 +- .../dataregion/compaction/execute/task/SettleCompactionTask.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBDeletionTableIT.java b/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBDeletionTableIT.java index d08e26be4f0..6720f5f793c 100644 --- a/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBDeletionTableIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBDeletionTableIT.java @@ -1741,7 +1741,7 @@ public class IoTDBDeletionTableIT { List<TimeRange> ranges = new ArrayList<>(); try (ResultSet set = statement.executeQuery( - "select time from table" + testNum + " where time <= " + timeUpperBound)) { + "select time from table" + testNum + " where time <= " + timeUpperBound + " order by time")) { while (set.next()) { long time = set.getLong(1); if (ranges.isEmpty()) { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/SettleCompactionTask.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/SettleCompactionTask.java index e00703e5e75..42aae6e5a66 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/SettleCompactionTask.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/SettleCompactionTask.java @@ -22,6 +22,7 @@ import org.apache.iotdb.db.service.metrics.FileMetrics; import org.apache.iotdb.db.storageengine.dataregion.compaction.constant.CompactionTaskType; import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.exception.CompactionRecoverException; import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.ICompactionPerformer; +import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.CompactionUtils; import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.log.CompactionLogAnalyzer; import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.log.CompactionLogger; import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.log.SimpleCompactionLogger; @@ -136,7 +137,11 @@ public class SettleCompactionTask extends InnerSpaceCompactionTask { new File( allSourceFiles.get(0).getTsFile().getAbsolutePath() + CompactionLogger.SETTLE_COMPACTION_LOG_NAME_SUFFIX); + try (SimpleCompactionLogger compactionLogger = new SimpleCompactionLogger(logFile)) { + CompactionUtils.prepareCompactionModFiles( + filesView.targetFilesInPerformer, filesView.sourceFilesInCompactionPerformer); + calculateSourceFilesAndTargetFiles(); isHoldingWriteLock = new boolean[this.filesView.sourceFilesInLog.size()]; Arrays.fill(isHoldingWriteLock, false);
