This is an automated email from the ASF dual-hosted git repository.
hzh0425 pushed a commit to branch dledger-controller-snapshot
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/dledger-controller-snapshot by
this push:
new aa206bed0 Add two dledger configs for controller (#5705)
aa206bed0 is described below
commit aa206bed05405a3bffb4e1a683a667d27a43de29
Author: hzh0425 <[email protected]>
AuthorDate: Thu Dec 15 21:53:36 2022 +0800
Add two dledger configs for controller (#5705)
---
.../apache/rocketmq/common/ControllerConfig.java | 26 ++++++++++++++++++++++
.../controller/impl/DLedgerController.java | 2 ++
2 files changed, 28 insertions(+)
diff --git
a/common/src/main/java/org/apache/rocketmq/common/ControllerConfig.java
b/common/src/main/java/org/apache/rocketmq/common/ControllerConfig.java
index 942c03874..0dffa927a 100644
--- a/common/src/main/java/org/apache/rocketmq/common/ControllerConfig.java
+++ b/common/src/main/java/org/apache/rocketmq/common/ControllerConfig.java
@@ -59,6 +59,16 @@ public class ControllerConfig {
*/
private volatile boolean notifyBrokerRoleChanged = true;
+ /**
+ * How many DLedger logs are committed to trigger a snapshot
+ */
+ private int snapshotThreshold = 1000;
+
+ /**
+ * The max number of snapshot files keeping within the store.
+ */
+ private int maxSnapshotReservedNum = 3;
+
public String getRocketmqHome() {
return rocketmqHome;
}
@@ -162,4 +172,20 @@ public class ControllerConfig {
public void setNotifyBrokerRoleChanged(boolean notifyBrokerRoleChanged) {
this.notifyBrokerRoleChanged = notifyBrokerRoleChanged;
}
+
+ public int getSnapshotThreshold() {
+ return snapshotThreshold;
+ }
+
+ public void setSnapshotThreshold(int snapshotThreshold) {
+ this.snapshotThreshold = snapshotThreshold;
+ }
+
+ public int getMaxSnapshotReservedNum() {
+ return maxSnapshotReservedNum;
+ }
+
+ public void setMaxSnapshotReservedNum(int maxSnapshotReservedNum) {
+ this.maxSnapshotReservedNum = maxSnapshotReservedNum;
+ }
}
diff --git
a/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerController.java
b/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerController.java
index 27a75b2ea..50e71a574 100644
---
a/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerController.java
+++
b/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerController.java
@@ -106,6 +106,8 @@ public class DLedgerController implements Controller {
this.dLedgerConfig.setSelfId(controllerConfig.getControllerDLegerSelfId());
this.dLedgerConfig.setStoreBaseDir(controllerConfig.getControllerStorePath());
this.dLedgerConfig.setMappedFileSizeForEntryData(controllerConfig.getMappedFileSize());
+
this.dLedgerConfig.setSnapshotThreshold(controllerConfig.getSnapshotThreshold());
+
this.dLedgerConfig.setMaxSnapshotReservedNum(controllerConfig.getMaxSnapshotReservedNum());
this.roleHandler = new RoleChangeHandler(dLedgerConfig.getSelfId());
this.replicasInfoManager = new ReplicasInfoManager(controllerConfig);