This is an automated email from the ASF dual-hosted git repository.

shuwenwei pushed a commit to branch object_type
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/object_type by this push:
     new 4b12a4cc049 only allow ttl to delete object files
4b12a4cc049 is described below

commit 4b12a4cc0495686841d9420f517d6ec5ffb3e135
Author: shuwenwei <[email protected]>
AuthorDate: Wed Jul 9 17:27:29 2025 +0800

    only allow ttl to delete object files
---
 .../execute/utils/MultiTsFileDeviceIterator.java   | 12 ++++++-----
 .../fast/FastAlignedSeriesCompactionExecutor.java  | 23 +++++++++++++++++-----
 2 files changed, 25 insertions(+), 10 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java
index 1c272cb3453..450affc17b7 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/MultiTsFileDeviceIterator.java
@@ -476,11 +476,13 @@ public class MultiTsFileDeviceIterator implements 
AutoCloseable {
           modificationList.isEmpty() ? Collections.emptyList() : 
modificationList);
     }
 
-    CompactionUtils.removeDeletedObjectFiles(
-        readerMap.get(tsFileResource),
-        alignedChunkMetadataList,
-        modificationForTimeColumn,
-        modificationForValueColumns);
+    if (ttlDeletion != null) {
+      CompactionUtils.removeDeletedObjectFiles(
+          readerMap.get(tsFileResource),
+          alignedChunkMetadataList,
+          Collections.singletonList(ttlDeletion),
+          Collections.emptyList());
+    }
 
     ModificationUtils.modifyAlignedChunkMetaData(
         alignedChunkMetadataList,
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/fast/FastAlignedSeriesCompactionExecutor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/fast/FastAlignedSeriesCompactionExecutor.java
index 4817d855ca0..3bb42fa8bdf 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/fast/FastAlignedSeriesCompactionExecutor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/executor/fast/FastAlignedSeriesCompactionExecutor.java
@@ -22,7 +22,9 @@ package 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.ex
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.AlignedPath;
 import org.apache.iotdb.commons.path.PatternTreeMap;
+import org.apache.iotdb.commons.utils.CommonDateTimeUtils;
 import org.apache.iotdb.db.exception.WriteProcessException;
+import 
org.apache.iotdb.db.queryengine.plan.analyze.cache.schema.DataNodeTTLCache;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.subtask.FastCompactionTaskSummary;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.CompactionUtils;
 import 
org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.executor.ModifiedStatus;
@@ -59,6 +61,7 @@ import org.apache.tsfile.write.schema.IMeasurementSchema;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -262,11 +265,21 @@ public class FastAlignedSeriesCompactionExecutor extends 
SeriesCompactionExecuto
                 }
               });
 
-      CompactionUtils.removeDeletedObjectFiles(
-          readerCacheMap.get(resource),
-          alignedChunkMetadataList,
-          timeModifications,
-          valueModifications);
+      long ttlForTable =
+          deviceId.isTableModel()
+              ? DataNodeTTLCache.getInstance()
+                  .getTTLForTable(resource.getDatabaseName(), 
deviceId.getTableName())
+              : Long.MAX_VALUE;
+      if (ttlForTable != Long.MAX_VALUE) {
+        ModEntry ttlDeletion =
+            CompactionUtils.convertTtlToDeletion(
+                deviceId, CommonDateTimeUtils.currentTime() - ttlForTable);
+        CompactionUtils.removeDeletedObjectFiles(
+            readerCacheMap.get(resource),
+            alignedChunkMetadataList,
+            Collections.singletonList(ttlDeletion),
+            Collections.emptyList());
+      }
 
       // modify aligned chunk metadatas
       ModificationUtils.modifyAlignedChunkMetaData(

Reply via email to