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

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


The following commit(s) were added to refs/heads/master by this push:
     new 5f635bf464e DAL: Remove dal file after drop databases or remove 
dataRegions (#15191)
5f635bf464e is described below

commit 5f635bf464e8e047e1deab7485ba8ebf3ca81c51
Author: Peng Junzhi <[email protected]>
AuthorDate: Wed Mar 26 11:25:35 2025 +0800

    DAL: Remove dal file after drop databases or remove dataRegions (#15191)
    
    * remove dal file after drop databases
    
    * improve
---
 .../db/pipe/consensus/deletion/DeletionResourceManager.java    |  6 ++++++
 .../java/org/apache/iotdb/db/storageengine/StorageEngine.java  |  1 +
 .../apache/iotdb/db/storageengine/dataregion/DataRegion.java   | 10 ++++++++++
 3 files changed, 17 insertions(+)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/consensus/deletion/DeletionResourceManager.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/consensus/deletion/DeletionResourceManager.java
index 7e7dec38c66..dcde242460c 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/consensus/deletion/DeletionResourceManager.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/consensus/deletion/DeletionResourceManager.java
@@ -167,6 +167,12 @@ public class DeletionResourceManager implements 
AutoCloseable {
     }
   }
 
+  public void removeDAL() {
+    FileUtils.deleteFileOrDirectory(storageDir);
+    LOGGER.info(
+        "DeletionManager-{}: current DAL dir {} is deleted successfully", 
dataRegionId, storageDir);
+  }
+
   /**
    * This is a hook function, which will be automatically invoked when 
deletionResource's reference
    * count returns to 0.
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
index f1f188fcb09..d684367787d 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
@@ -780,6 +780,7 @@ public class StorageEngine implements IService {
         region.abortCompaction();
         region.syncDeleteDataFiles();
         region.deleteFolder(systemDir);
+        region.deleteDALFolderAndClose();
         switch (CONFIG.getDataRegionConsensusProtocolClass()) {
           case ConsensusFactory.IOT_CONSENSUS:
           case ConsensusFactory.IOT_CONSENSUS_V2:
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 a2e6873360b..287939bedea 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
@@ -52,6 +52,7 @@ import 
org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.exception.quota.ExceedQuotaException;
 import org.apache.iotdb.db.pipe.consensus.deletion.DeletionResource;
 import org.apache.iotdb.db.pipe.consensus.deletion.DeletionResource.Status;
+import org.apache.iotdb.db.pipe.consensus.deletion.DeletionResourceManager;
 import 
org.apache.iotdb.db.pipe.consensus.deletion.persist.PageCacheDeletionBuffer;
 import 
org.apache.iotdb.db.pipe.extractor.dataregion.realtime.listener.PipeInsertionDataNodeListener;
 import org.apache.iotdb.db.queryengine.common.DeviceContext;
@@ -1700,6 +1701,15 @@ public class DataRegion implements IDataRegionForQuery {
     }
   }
 
+  public void deleteDALFolderAndClose() {
+    Optional.ofNullable(DeletionResourceManager.getInstance(dataRegionId))
+        .ifPresent(
+            manager -> {
+              manager.close();
+              manager.removeDAL();
+            });
+  }
+
   /** close all tsfile resource */
   public void closeAllResources() {
     for (TsFileResource tsFileResource : tsFileManager.getTsFileList(false)) {

Reply via email to