Skip to content

Commit 0c23da2

Browse files
authored
Fix that settle compaction may lgnore some newly incoming deletions (#16799)
* Fix that settle compaction may lgnore some newly incoming deletions * spotless * fix order
1 parent fbcb8a2 commit 0c23da2

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBDeletionTableIT.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1741,7 +1741,11 @@ private List<TimeRange> collectDataRanges(Statement statement, long timeUpperBou
17411741
List<TimeRange> ranges = new ArrayList<>();
17421742
try (ResultSet set =
17431743
statement.executeQuery(
1744-
"select time from table" + testNum + " where time <= " + timeUpperBound)) {
1744+
"select time from table"
1745+
+ testNum
1746+
+ " where time <= "
1747+
+ timeUpperBound
1748+
+ " order by time")) {
17451749
while (set.next()) {
17461750
long time = set.getLong(1);
17471751
if (ranges.isEmpty()) {

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/SettleCompactionTask.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.apache.iotdb.db.storageengine.dataregion.compaction.constant.CompactionTaskType;
2323
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.exception.CompactionRecoverException;
2424
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.ICompactionPerformer;
25+
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.CompactionUtils;
2526
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.log.CompactionLogAnalyzer;
2627
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.log.CompactionLogger;
2728
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.log.SimpleCompactionLogger;
@@ -136,8 +137,12 @@ protected boolean doCompaction() {
136137
new File(
137138
allSourceFiles.get(0).getTsFile().getAbsolutePath()
138139
+ CompactionLogger.SETTLE_COMPACTION_LOG_NAME_SUFFIX);
140+
139141
try (SimpleCompactionLogger compactionLogger = new SimpleCompactionLogger(logFile)) {
140142
calculateSourceFilesAndTargetFiles();
143+
CompactionUtils.prepareCompactionModFiles(
144+
filesView.targetFilesInPerformer, filesView.sourceFilesInCompactionPerformer);
145+
141146
isHoldingWriteLock = new boolean[this.filesView.sourceFilesInLog.size()];
142147
Arrays.fill(isHoldingWriteLock, false);
143148
compactionLogger.logSourceFiles(fullyDirtyFiles);

0 commit comments

Comments
 (0)