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(