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

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

commit ee39ee10811d43567acc33bd24977d3ae1e22ca9
Author: HTHou <[email protected]>
AuthorDate: Mon Dec 15 14:17:01 2025 +0800

    deving
---
 .../db/storageengine/dataregion/DataRegion.java    | 14 +++++++++++--
 .../db/storageengine/rescon/disk/TierManager.java  | 24 ++++++++++++++++++++++
 2 files changed, 36 insertions(+), 2 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
index 09c9ee84304..639b7e4c214 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
@@ -2751,8 +2751,8 @@ public class DataRegion implements IDataRegionForQuery {
       if (deleted) {
         return;
       }
-      TableDeviceSchemaCache.getInstance()
-          .invalidateLastCache(getDatabaseName(), 
modEntries.get(0).getTableName());
+      String tableName = modEntries.get(0).getTableName();
+      
TableDeviceSchemaCache.getInstance().invalidateLastCache(getDatabaseName(), 
tableName);
       List<WALFlushListener> walListeners = logDeletionInWAL(node);
 
       for (WALFlushListener walFlushListener : walListeners) {
@@ -2762,6 +2762,10 @@ public class DataRegion implements IDataRegionForQuery {
         }
       }
 
+      if (TierManager.getInstance().checkObjectPathExist(dataRegionIdString, 
tableName)) {
+        deleteObjectFiles(tableName, modEntries);
+      }
+
       List<List<TsFileResource>> sealedTsFileResourceLists = new 
ArrayList<>(modEntries.size());
       for (TableDeletionEntry modEntry : modEntries) {
         List<TsFileResource> sealedTsFileResource = new ArrayList<>();
@@ -2930,6 +2934,12 @@ public class DataRegion implements IDataRegionForQuery {
     return walFlushListeners;
   }
 
+  private void deleteObjectFiles(String tableName, List<TableDeletionEntry> 
modEntries) {
+    for (TableDeletionEntry modEntry : modEntries) {
+
+    }
+  }
+
   /**
    * For IoTConsensus sync. See <a 
href="https://github.com/apache/iotdb/pull/12955";>github pull
    * request</a> for details.
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/rescon/disk/TierManager.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/rescon/disk/TierManager.java
index a5fa8b54e7b..e173bb0abaf 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/rescon/disk/TierManager.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/rescon/disk/TierManager.java
@@ -28,6 +28,7 @@ import 
org.apache.iotdb.db.storageengine.rescon.disk.strategy.MinFolderOccupiedS
 import 
org.apache.iotdb.db.storageengine.rescon.disk.strategy.RandomOnDiskUsableSpaceStrategy;
 import org.apache.iotdb.metrics.utils.FileStoreUtils;
 
+import com.google.common.io.BaseEncoding;
 import org.apache.tsfile.fileSystem.FSFactoryProducer;
 import org.apache.tsfile.fileSystem.FSType;
 import org.apache.tsfile.utils.FSUtils;
@@ -36,6 +37,7 @@ import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.FileStore;
 import java.nio.file.Path;
 import java.util.ArrayList;
@@ -272,6 +274,28 @@ public class TierManager {
     return Optional.empty();
   }
 
+  public boolean checkObjectPathExist(String regionIdStr, String... path) {
+    StringBuilder objectPath = new StringBuilder();
+    objectPath.append(regionIdStr);
+    for (String str : path) {
+      objectPath
+          .append(File.separator)
+          .append(
+              config.getRestrictObjectLimit()
+                  ? str
+                  : BaseEncoding.base32()
+                      .omitPadding()
+                      .encode(str.getBytes(StandardCharsets.UTF_8)));
+    }
+    for (String objectDir : objectDirs) {
+      File objectFilePath = 
FSFactoryProducer.getFSFactory().getFile(objectDir, objectPath.toString());
+      if (objectFilePath.exists()) {
+        return true;
+      }
+    }
+    return false;
+  }
+
   public int getTiersNum() {
     return seqTiers.size();
   }

Reply via email to