You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ca...@apache.org on 2022/11/27 13:21:05 UTC
[iotdb] branch fix_confignode_simple created (now 7f43e9188a)
This is an automated email from the ASF dual-hosted git repository.
caogaofei pushed a change to branch fix_confignode_simple
in repository https://gitbox.apache.org/repos/asf/iotdb.git
at 7f43e9188a fix problem in confignode simple
This branch includes the following new commits:
new 7f43e9188a fix problem in confignode simple
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[iotdb] 01/01: fix problem in confignode simple
Posted by ca...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
caogaofei pushed a commit to branch fix_confignode_simple
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 7f43e9188a893b9140d7552ec33258463a36d07c
Author: Beyyes <cg...@foxmail.com>
AuthorDate: Sun Nov 27 21:20:51 2022 +0800
fix problem in confignode simple
---
.../iotdb/confignode/manager/ConsensusManager.java | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConsensusManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConsensusManager.java
index afa133575a..01593e5e31 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConsensusManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConsensusManager.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.common.rpc.thrift.TEndPoint;
import org.apache.iotdb.common.rpc.thrift.TSStatus;
import org.apache.iotdb.commons.consensus.ConfigNodeRegionId;
import org.apache.iotdb.commons.consensus.ConsensusGroupId;
+import org.apache.iotdb.commons.exception.BadNodeUrlException;
import org.apache.iotdb.commons.utils.TestOnly;
import org.apache.iotdb.confignode.conf.ConfigNodeConfig;
import org.apache.iotdb.confignode.conf.ConfigNodeDescriptor;
@@ -51,6 +52,8 @@ import java.util.Collections;
import java.util.List;
import java.util.concurrent.TimeUnit;
+import static org.apache.iotdb.consensus.ConsensusFactory.SIMPLE_CONSENSUS;
+
/** ConsensusManager maintains consensus class, request will redirect to consensus layer */
public class ConsensusManager {
@@ -78,10 +81,10 @@ public class ConsensusManager {
// There is only one ConfigNodeGroup
consensusGroupId = new ConfigNodeRegionId(CONF.getConfigNodeRegionId());
- if (ConsensusFactory.SIMPLE_CONSENSUS.equals(CONF.getConfigNodeConsensusProtocolClass())) {
+ if (SIMPLE_CONSENSUS.equals(CONF.getConfigNodeConsensusProtocolClass())) {
consensusImpl =
ConsensusFactory.getConsensusImpl(
- ConsensusFactory.SIMPLE_CONSENSUS,
+ SIMPLE_CONSENSUS,
ConsensusConfig.newBuilder()
.setThisNode(
new TEndPoint(CONF.getInternalAddress(), CONF.getConsensusPort()))
@@ -93,7 +96,7 @@ public class ConsensusManager {
new IllegalArgumentException(
String.format(
ConsensusFactory.CONSTRUCT_FAILED_MSG,
- ConsensusFactory.SIMPLE_CONSENSUS)));
+ SIMPLE_CONSENSUS)));
} else {
// Implement local ConsensusLayer by ConfigNodeConfig
consensusImpl =
@@ -179,6 +182,16 @@ public class ConsensusManager {
consensusImpl.start();
if (SystemPropertiesUtils.isRestarted()) {
// TODO: Check and notify if current ConfigNode's ip or port has changed
+
+ if (SIMPLE_CONSENSUS.equals(CONF.getConfigNodeConsensusProtocolClass())) {
+ // Only SIMPLE_CONSENSUS need invoking `createPeerForConsensusGroup` when restarted,
+ // but RATIS_CONSENSUS doesn't need it
+ try {
+ createPeerForConsensusGroup(SystemPropertiesUtils.loadConfigNodeList());
+ } catch (BadNodeUrlException e) {
+ throw new IOException(e);
+ }
+ }
LOGGER.info("Init ConsensusManager successfully when restarted");
} else if (ConfigNodeDescriptor.getInstance().isSeedConfigNode()) {
// Create ConsensusGroup that contains only itself