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;