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/11/28 16:13:57 UTC
[iotdb] branch rel/1.0 updated: [To rel/1.0] [IOTDB-5074] Add storage group name and region id to the path of snapshot (#8231)
This is an automated email from the ASF dual-hosted git repository.
tanxinyu 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 352bf6a431 [To rel/1.0] [IOTDB-5074] Add storage group name and region id to the path of snapshot (#8231)
352bf6a431 is described below
commit 352bf6a431680d390fa1cce5623befc48df8d306
Author: Liu Xuxin <37...@users.noreply.github.com>
AuthorDate: Tue Nov 29 00:13:50 2022 +0800
[To rel/1.0] [IOTDB-5074] Add storage group name and region id to the path of snapshot (#8231)
* try to add storage group name and region id for snapshot taker and loader
* fit ut
* fix getSnapshotFile
---
.../iotdb/db/consensus/statemachine/DataRegionStateMachine.java | 7 ++++++-
.../java/org/apache/iotdb/db/engine/snapshot/SnapshotLoader.java | 8 ++++++++
.../java/org/apache/iotdb/db/engine/snapshot/SnapshotTaker.java | 4 ++++
.../org/apache/iotdb/db/engine/snapshot/IoTDBSnapshotTest.java | 8 +++++++-
4 files changed, 25 insertions(+), 2 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 bf602a7d5f..b40154288e 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
@@ -447,7 +447,12 @@ public class DataRegionStateMachine extends BaseStateMachine {
@Override
public File getSnapshotRoot() {
- String snapshotDir = IoTDBDescriptor.getInstance().getConfig().getRatisDataRegionSnapshotDir();
+ String snapshotDir =
+ IoTDBDescriptor.getInstance().getConfig().getRatisDataRegionSnapshotDir()
+ + File.separator
+ + region.getStorageGroupName()
+ + "-"
+ + region.getDataRegionId();
try {
return new File(snapshotDir).getCanonicalFile();
} catch (IOException e) {
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotLoader.java b/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotLoader.java
index c70fa8844e..72d9dc1384 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotLoader.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotLoader.java
@@ -326,6 +326,10 @@ public class SnapshotLoader {
+ File.separator
+ IoTDBConstant.SNAPSHOT_FOLDER_NAME
+ File.separator
+ + storageGroupName
+ + "-"
+ + dataRegionId
+ + File.separator
+ snapshotId;
fileCnt += takeHardLinksFromSnapshotToDataDir(dataDir, new File(snapshotDir), fileInfoSet);
}
@@ -458,6 +462,10 @@ public class SnapshotLoader {
+ File.separator
+ IoTDBConstant.SNAPSHOT_FOLDER_NAME
+ File.separator
+ + storageGroupName
+ + "-"
+ + dataRegionId
+ + File.separator
+ snapshotId;
fileList.addAll(searchDataFilesRecursively(snapshotDir));
}
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 80132d5e60..c01e5a0c25 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
@@ -226,6 +226,10 @@ public class SnapshotTaker {
}
stringBuilder.append(IoTDBConstant.SNAPSHOT_FOLDER_NAME);
stringBuilder.append(File.separator);
+ stringBuilder.append(dataRegion.getStorageGroupName());
+ stringBuilder.append("-");
+ stringBuilder.append(dataRegion.getDataRegionId());
+ stringBuilder.append(File.separator);
stringBuilder.append(snapshotId);
stringBuilder.append(File.separator);
// the content in here will be
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/snapshot/IoTDBSnapshotTest.java b/server/src/test/java/org/apache/iotdb/db/engine/snapshot/IoTDBSnapshotTest.java
index b13ba3777a..9db5350ada 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/snapshot/IoTDBSnapshotTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/snapshot/IoTDBSnapshotTest.java
@@ -36,6 +36,7 @@ import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.mockito.Mockito;
import java.io.File;
import java.io.IOException;
@@ -205,14 +206,19 @@ public class IoTDBSnapshotTest {
+ "0"
+ File.separator
+ "1-1-0-0.tsfile");
+ DataRegion region = Mockito.mock(DataRegion.class);
+ Mockito.when(region.getStorageGroupName()).thenReturn("root.test");
+ Mockito.when(region.getDataRegionId()).thenReturn("0");
File snapshotFile =
- new SnapshotTaker(null).getSnapshotFilePathForTsFile(tsFile, "test-snapshotId");
+ new SnapshotTaker(region).getSnapshotFilePathForTsFile(tsFile, "test-snapshotId");
Assert.assertEquals(
new File(
IoTDBDescriptor.getInstance().getConfig().getDataDirs()[0]
+ File.separator
+ "snapshot"
+ File.separator
+ + "root.test-0"
+ + File.separator
+ "test-snapshotId"
+ File.separator
+ "sequence"