Skip to content

Commit 2f9f9ca

Browse files
authored
Fix TTL expired data ratio in settle compaction (#18777)
1 parent 0c9a5ee commit 2f9f9ca

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

  • iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl

‎iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/SettleSelectorImpl.java‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ private FileDirtyInfo selectFileBaseOnDirtyData(TsFileResource resource)
290290
// overflow, like 100 - Long.MIN
291291
outdatedTimeDiff = Long.MAX_VALUE;
292292
}
293-
long ttlThreshold = 3 * ttl > ttl ? ttl : Long.MAX_VALUE;
293+
long ttlThreshold = ttl <= Long.MAX_VALUE / 3 ? 3 * ttl : Long.MAX_VALUE;
294294
hasExpiredTooLong =
295295
hasExpiredTooLong
296296
|| outdatedTimeDiff > Math.min(config.getMaxExpiredTime(), ttlThreshold);
@@ -309,7 +309,8 @@ private FileDirtyInfo selectFileBaseOnDirtyData(TsFileResource resource)
309309
return new FileDirtyInfo(DirtyStatus.FULLY_DIRTY, ttlTables);
310310
}
311311
hasExpiredTooLong = config.getMaxExpiredTime() != Long.MAX_VALUE && hasExpiredTooLong;
312-
if (hasExpiredTooLong || deletedDeviceRatio >= config.getExpiredDataRatio()) {
312+
if (hasExpiredTooLong
313+
|| (deletedDeviceRatio > 0 && deletedDeviceRatio >= config.getExpiredDataRatio())) {
313314
// evaluate dirty data size in the tsfile
314315
return new FileDirtyInfo(
315316
PARTIALLY_DIRTY, (long) (deletedDeviceRatio * resource.getTsFileSize()), ttlTables);

0 commit comments

Comments
 (0)