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)) {