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

marklau99 pushed a commit to branch IOTDB-5010
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/IOTDB-5010 by this push:
     new f10fd59edc add temp snapshotID in snapshot taker
f10fd59edc is described below

commit f10fd59edca34ca3276a312284327a5ef1af725e
Author: LiuXuxin <[email protected]>
AuthorDate: Tue Nov 22 13:36:21 2022 +0800

    add temp snapshotID in snapshot taker
---
 .../consensus/statemachine/DataRegionStateMachine.java  |  2 +-
 .../apache/iotdb/db/engine/snapshot/SnapshotTaker.java  | 17 ++++++++++-------
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/consensus/statemachine/DataRegionStateMachine.java
 
b/server/src/main/java/org/apache/iotdb/db/consensus/statemachine/DataRegionStateMachine.java
index 6d2516964d..e5aeed2888 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/consensus/statemachine/DataRegionStateMachine.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/consensus/statemachine/DataRegionStateMachine.java
@@ -115,7 +115,7 @@ public class DataRegionStateMachine extends 
BaseStateMachine {
   public boolean takeSnapshot(File snapshotDir, String snapshotId) {
     try {
       return new SnapshotTaker(region)
-          .takeFullSnapshot(snapshotDir.getAbsolutePath(), snapshotId, true);
+          .takeFullSnapshot(snapshotDir.getAbsolutePath(), snapshotId, 
snapshotId, true);
     } catch (Exception e) {
       logger.error(
           "Exception occurs when taking snapshot for {}-{} in {}",
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 175b8c5344..80132d5e60 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
@@ -58,11 +58,14 @@ public class SnapshotTaker {
       throws DirectoryNotLegalException, IOException {
     File snapshotDir = new File(snapshotDirPath);
     String snapshotId = snapshotDir.getName();
-    return takeFullSnapshot(snapshotDirPath, snapshotId, flushBeforeSnapshot);
+    return takeFullSnapshot(snapshotDirPath, snapshotId, snapshotId, 
flushBeforeSnapshot);
   }
 
   public boolean takeFullSnapshot(
-      String snapshotDirPath, String snapshotId, boolean flushBeforeSnapshot)
+      String snapshotDirPath,
+      String tempSnapshotId,
+      String finalSnapshotId,
+      boolean flushBeforeSnapshot)
       throws DirectoryNotLegalException, IOException {
     File snapshotDir = new File(snapshotDirPath);
     if (snapshotDir.exists()
@@ -81,7 +84,7 @@ public class SnapshotTaker {
     try {
       snapshotLogger = new SnapshotLogger(snapshotLog);
       boolean success;
-      snapshotLogger.logSnapshotId(snapshotId);
+      snapshotLogger.logSnapshotId(finalSnapshotId);
 
       try {
         readLockTheFile();
@@ -93,8 +96,8 @@ public class SnapshotTaker {
             dataRegion.writeUnlock();
           }
         }
-        success = createSnapshot(seqFiles, snapshotId);
-        success = createSnapshot(unseqFiles, snapshotId) && success;
+        success = createSnapshot(seqFiles, tempSnapshotId);
+        success = success && createSnapshot(unseqFiles, tempSnapshotId);
       } finally {
         readUnlockTheFile();
       }
@@ -104,14 +107,14 @@ public class SnapshotTaker {
             "Failed to take snapshot for {}-{}, clean up",
             dataRegion.getStorageGroupName(),
             dataRegion.getDataRegionId());
-        cleanUpWhenFail(snapshotId);
+        cleanUpWhenFail(finalSnapshotId);
       } else {
         snapshotLogger.logEnd();
         LOGGER.info(
             "Successfully take snapshot for {}-{}, snapshot directory is {}",
             dataRegion.getStorageGroupName(),
             dataRegion.getDataRegionId(),
-            snapshotDir.getParentFile().getAbsolutePath() + File.separator + 
snapshotId);
+            snapshotDir.getParentFile().getAbsolutePath() + File.separator + 
finalSnapshotId);
       }
 
       return success;

Reply via email to