You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by sp...@apache.org on 2022/12/15 04:05:20 UTC

[iotdb] branch rel/1.0 updated: delete snapshot (#8383)

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

spricoder pushed a commit to branch rel/1.0
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/rel/1.0 by this push:
     new f5f73e5921 delete snapshot (#8383)
f5f73e5921 is described below

commit f5f73e5921d7405ce54a07cdf75c5347ee84b5a7
Author: Alan Choo <43...@users.noreply.github.com>
AuthorDate: Thu Dec 15 12:05:15 2022 +0800

    delete snapshot (#8383)
---
 .../java/org/apache/iotdb/db/engine/StorageEngineV2.java | 16 ++++++++++++++++
 .../apache/iotdb/db/engine/snapshot/SnapshotTaker.java   |  2 +-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
index e80c823bf1..2b59b5ceb5 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.commons.concurrent.threadpool.ScheduledExecutorUtil;
 import org.apache.iotdb.commons.conf.CommonDescriptor;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.consensus.DataRegionId;
 import org.apache.iotdb.commons.exception.ShutdownException;
 import org.apache.iotdb.commons.file.SystemFileFactory;
@@ -653,9 +654,24 @@ public class StorageEngineV2 implements IService {
             && config
                 .getDataRegionConsensusProtocolClass()
                 .equals(ConsensusFactory.IOT_CONSENSUS)) {
+          // delete wal
           WALManager.getInstance()
               .deleteWALNode(
                   region.getDatabaseName() + FILE_NAME_SEPARATOR + region.getDataRegionId());
+          // delete snapshot
+          for (String dataDir : config.getDataDirs()) {
+            File regionSnapshotDir =
+                new File(
+                    dataDir + File.separator + IoTDBConstant.SNAPSHOT_FOLDER_NAME,
+                    region.getDatabaseName() + FILE_NAME_SEPARATOR + regionId.getId());
+            if (regionSnapshotDir.exists()) {
+              try {
+                FileUtils.deleteDirectory(regionSnapshotDir);
+              } catch (IOException e) {
+                logger.error("Failed to delete snapshot dir {}", regionSnapshotDir, e);
+              }
+            }
+          }
         }
         SyncService.getInstance().unregisterDataRegion(region.getDataRegionId());
       } catch (Exception e) {
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotTaker.java b/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotTaker.java
index f6c27f1fbc..c801e40ddd 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotTaker.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotTaker.java
@@ -227,7 +227,7 @@ public class SnapshotTaker {
     stringBuilder.append(IoTDBConstant.SNAPSHOT_FOLDER_NAME);
     stringBuilder.append(File.separator);
     stringBuilder.append(dataRegion.getDatabaseName());
-    stringBuilder.append("-");
+    stringBuilder.append(IoTDBConstant.FILE_NAME_SEPARATOR);
     stringBuilder.append(dataRegion.getDataRegionId());
     stringBuilder.append(File.separator);
     stringBuilder.append(snapshotId);