You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ta...@apache.org on 2022/06/23 04:01:03 UTC
[iotdb] branch master updated: delete tsfiles when recovering data region (#6388)
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 346ed83119 delete tsfiles when recovering data region (#6388)
346ed83119 is described below
commit 346ed831191b976713fd4657dc79ce755aadd5f3
Author: Alan Choo <43...@users.noreply.github.com>
AuthorDate: Thu Jun 23 12:00:57 2022 +0800
delete tsfiles when recovering data region (#6388)
---
.../db/conf/directories/DirectoryManager.java | 6 ++++++
.../iotdb/db/engine/storagegroup/DataRegion.java | 25 +++++++++++++++++++---
2 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/directories/DirectoryManager.java b/server/src/main/java/org/apache/iotdb/db/conf/directories/DirectoryManager.java
index a9829ce45f..273f071008 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/directories/DirectoryManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/directories/DirectoryManager.java
@@ -185,4 +185,10 @@ public class DirectoryManager {
public List<String> getAllUnSequenceFileFolders() {
return new ArrayList<>(unsequenceFileFolders);
}
+
+ public List<String> getAllFilesFolders() {
+ List<String> folders = new ArrayList<>(sequenceFileFolders);
+ folders.addAll(unsequenceFileFolders);
+ return folders;
+ }
}
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
index 5101b841ce..3aeb349605 100755
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
@@ -313,6 +313,27 @@ public class DataRegion {
"Skip recovering data region {}[{}] when consensus protocol is ratis and storage engine is not ready.",
logicalStorageGroupName,
dataRegionId);
+ for (String fileFolder : DirectoryManager.getInstance().getAllFilesFolders()) {
+ File dataRegionFolder =
+ fsFactory.getFile(fileFolder, logicalStorageGroupName + File.separator + dataRegionId);
+ if (dataRegionFolder.exists()) {
+ File[] timePartitions = dataRegionFolder.listFiles();
+ if (timePartitions != null) {
+ for (File timePartition : timePartitions) {
+ try {
+ FileUtils.forceDelete(timePartition);
+ } catch (IOException e) {
+ logger.error(
+ "Exception occurs when deleting time partition directory {} for {}-{}",
+ timePartitions,
+ logicalStorageGroupName,
+ dataRegionId,
+ e);
+ }
+ }
+ }
+ }
+ }
} else {
recover();
}
@@ -1660,9 +1681,7 @@ public class DataRegion {
// normally, mergingModification is just need to be closed by after a merge task is finished.
// we close it here just for IT test.
closeAllResources();
- List<String> folder = DirectoryManager.getInstance().getAllSequenceFileFolders();
- folder.addAll(DirectoryManager.getInstance().getAllUnSequenceFileFolders());
- deleteAllSGFolders(folder);
+ deleteAllSGFolders(DirectoryManager.getInstance().getAllFilesFolders());
this.workSequenceTsFileProcessors.clear();
this.workUnsequenceTsFileProcessors.clear();