DongyuanPan commented on code in PR #127:
URL: https://github.com/apache/rocketmq-mqtt/pull/127#discussion_r928657822
##########
meta/src/main/java/org/apache/rocketmq/mqtt/meta/raft/MqttStateMachine.java:
##########
@@ -52,10 +57,13 @@ public class MqttStateMachine extends StateMachineAdapter {
private volatile String leaderIp = "unknown";
+ private SnapshotOperation snapshotOperation;
Review Comment:
snapshotOperation is not used in this file, maybe it should be delete
##########
meta/src/main/java/org/apache/rocketmq/mqtt/meta/raft/processor/StateProcessor.java:
##########
@@ -16,16 +16,30 @@
*/
package org.apache.rocketmq.mqtt.meta.raft.processor;
+
+import com.alipay.sofa.jraft.storage.snapshot.SnapshotReader;
+import com.alipay.sofa.jraft.storage.snapshot.SnapshotWriter;
import org.apache.rocketmq.mqtt.common.model.consistency.ReadRequest;
import org.apache.rocketmq.mqtt.common.model.consistency.Response;
import org.apache.rocketmq.mqtt.common.model.consistency.WriteRequest;
+import org.apache.rocketmq.mqtt.meta.raft.snapshot.SnapshotOperation;
+
+import java.util.function.BiConsumer;
public abstract class StateProcessor {
public abstract Response onReadRequest(ReadRequest request);
public abstract Response onWriteRequest(WriteRequest log);
+ public SnapshotOperation loadSnapshotOperate() {
Review Comment:
onSnapshotSave/onSnapshotLoad is used to do Snapshot Operate.
SnapshotOperation maybe can be a implementation of
onSnapshotSave/onSnapshotLoad, it can be delete
##########
meta/src/main/java/org/apache/rocketmq/mqtt/meta/raft/processor/CounterStateProcessor.java:
##########
@@ -62,6 +72,24 @@ public Response onWriteRequest(WriteRequest writeRequest) {
}
}
+ @Override
+ public SnapshotOperation loadSnapshotOperate() {
Review Comment:
However, you should consider that the user must use this framework for
snapshot operations. This may be achieved through design such as inheritance
##########
meta/src/main/java/org/apache/rocketmq/mqtt/meta/raft/MqttStateMachine.java:
##########
@@ -52,10 +57,13 @@ public class MqttStateMachine extends StateMachineAdapter {
private volatile String leaderIp = "unknown";
+ private SnapshotOperation snapshotOperation;
+
public MqttStateMachine(MqttRaftServer server, StateProcessor processor,
String groupId) {
this.server = server;
this.processor = processor;
this.groupId = groupId;
+ this.snapshotOperation = this.processor.loadSnapshotOperate();
Review Comment:
This parameter is not used in this file
##########
meta/src/main/java/org/apache/rocketmq/mqtt/meta/raft/processor/CounterStateProcessor.java:
##########
@@ -62,6 +72,24 @@ public Response onWriteRequest(WriteRequest writeRequest) {
}
}
+ @Override
+ public SnapshotOperation loadSnapshotOperate() {
Review Comment:
snapshotOperation can be init in constructor, or init function with
@postconstruct
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]