You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2022/08/10 11:00:45 UTC
[iotdb] branch master updated: [IOTDB-4090] Add getLatestSnapshotFiles interface in consensus (#6948)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin 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 517dc13a63 [IOTDB-4090] Add getLatestSnapshotFiles interface in consensus (#6948)
517dc13a63 is described below
commit 517dc13a637bbccc231f37199ee42630ab346252
Author: William Song <48...@users.noreply.github.com>
AuthorDate: Wed Aug 10 19:00:38 2022 +0800
[IOTDB-4090] Add getLatestSnapshotFiles interface in consensus (#6948)
---
.../java/org/apache/iotdb/consensus/IStateMachine.java | 15 +++++++++++++++
.../db/consensus/statemachine/DataRegionStateMachine.java | 6 ++++++
2 files changed, 21 insertions(+)
diff --git a/consensus/src/main/java/org/apache/iotdb/consensus/IStateMachine.java b/consensus/src/main/java/org/apache/iotdb/consensus/IStateMachine.java
index 203b7d2a6b..18004f084c 100644
--- a/consensus/src/main/java/org/apache/iotdb/consensus/IStateMachine.java
+++ b/consensus/src/main/java/org/apache/iotdb/consensus/IStateMachine.java
@@ -71,6 +71,21 @@ public interface IStateMachine {
*/
void loadSnapshot(File latestSnapshotRootDir);
+ /**
+ * given a snapshot dir, ask statemachine to provide all snapshot files.
+ *
+ * <p>DataRegion may take snapshot at a different disk and only store a log file containing file
+ * paths. So statemachine is required to read the log file and provide the real snapshot file
+ * paths.
+ *
+ * @param latestSnapshotRootDir dir where the latest snapshot sits
+ * @return List of real snapshot files. If the returned list is null, consensus implementations
+ * will visit and add all files under this give latestSnapshotRootDir.
+ */
+ default List<File> getSnapshotFiles(File latestSnapshotRootDir) {
+ return null;
+ }
+
/** An optional API for event notifications. */
interface EventApi {
/**
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 285ad31d74..818a09ab2e 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
@@ -104,6 +104,12 @@ public class DataRegionStateMachine extends BaseStateMachine {
}
}
+ @Override
+ public List<File> getSnapshotFiles(File latestSnapshotRootDir) {
+ // TODO: implement this method
+ return super.getSnapshotFiles(latestSnapshotRootDir);
+ }
+
@Override
public TSStatus write(IConsensusRequest request) {
PlanNode planNode;