This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 0c23da2551f Fix that settle compaction may lgnore some newly incoming
deletions (#16799)
0c23da2551f is described below
commit 0c23da2551fc86f726a99e6d7376b3239c4d389d
Author: Jiang Tian <[email protected]>
AuthorDate: Tue Nov 25 18:12:44 2025 +0800
Fix that settle compaction may lgnore some newly incoming deletions (#16799)
* Fix that settle compaction may lgnore some newly incoming deletions
* spotless
* fix order
---
.../org/apache/iotdb/relational/it/db/it/IoTDBDeletionTableIT.java | 6 +++++-
.../dataregion/compaction/execute/task/SettleCompactionTask.java | 5 +++++
2 files changed, 10 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..3d61b64e71a 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,11 @@ 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..0967089ecb3 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,8 +137,12 @@ public class SettleCompactionTask extends
InnerSpaceCompactionTask {
new File(
allSourceFiles.get(0).getTsFile().getAbsolutePath()
+ CompactionLogger.SETTLE_COMPACTION_LOG_NAME_SUFFIX);
+
try (SimpleCompactionLogger compactionLogger = new
SimpleCompactionLogger(logFile)) {
calculateSourceFilesAndTargetFiles();
+ CompactionUtils.prepareCompactionModFiles(
+ filesView.targetFilesInPerformer,
filesView.sourceFilesInCompactionPerformer);
+
isHoldingWriteLock = new boolean[this.filesView.sourceFilesInLog.size()];
Arrays.fill(isHoldingWriteLock, false);
compactionLogger.logSourceFiles(fullyDirtyFiles);