You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by zy...@apache.org on 2022/11/22 09:41:51 UTC
[iotdb] branch master updated: [IOTDB-5014] Fix ratis param (#8083)
This is an automated email from the ASF dual-hosted git repository.
zyk 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 93b936ed71 [IOTDB-5014] Fix ratis param (#8083)
93b936ed71 is described below
commit 93b936ed7107e6696b94c4a4e3eb6003d7a80d09
Author: William Song <48...@users.noreply.github.com>
AuthorDate: Tue Nov 22 17:41:45 2022 +0800
[IOTDB-5014] Fix ratis param (#8083)
[IOTDB-5014] Fix ratis param (#8083)
---
.../iotdb/confignode/conf/ConfigNodeConfig.java | 11 -----------
.../iotdb/confignode/conf/ConfigNodeDescriptor.java | 8 --------
.../iotdb/confignode/manager/node/NodeManager.java | 2 ++
.../apache/iotdb/consensus/ratis/RatisClient.java | 21 +++++++++++++++------
.../iotdb/consensus/ratis/RatisConsensus.java | 7 ++++++-
.../assembly/resources/conf/iotdb-common.properties | 1 -
6 files changed, 23 insertions(+), 27 deletions(-)
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
index 52fa0b0462..dd98569d05 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
@@ -168,7 +168,6 @@ public class ConfigNodeConfig {
private long dataRegionRatisSnapshotTriggerThreshold = 400000L;
private long configNodeRatisSnapshotTriggerThreshold = 400000L;
- private long configNodeSimpleConsensusSnapshotTriggerThreshold = 400000L;
private long schemaRegionRatisSnapshotTriggerThreshold = 400000L;
/** RatisConsensus protocol, allow flushing Raft Log asynchronously */
@@ -654,16 +653,6 @@ public class ConfigNodeConfig {
this.configNodeRatisSnapshotTriggerThreshold = configNodeRatisSnapshotTriggerThreshold;
}
- public long getConfigNodeSimpleConsensusSnapshotTriggerThreshold() {
- return configNodeSimpleConsensusSnapshotTriggerThreshold;
- }
-
- public void setConfigNodeSimpleConsensusSnapshotTriggerThreshold(
- long configNodeSimpleConsensusSnapshotTriggerThreshold) {
- this.configNodeSimpleConsensusSnapshotTriggerThreshold =
- configNodeSimpleConsensusSnapshotTriggerThreshold;
- }
-
public boolean isConfigNodeRatisLogUnsafeFlushEnable() {
return configNodeRatisLogUnsafeFlushEnable;
}
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
index e5728c13bd..25f298e47f 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
@@ -394,14 +394,6 @@ public class ConfigNodeDescriptor {
String.valueOf(conf.getConfigNodeRatisSnapshotTriggerThreshold()))
.trim()));
- conf.setConfigNodeSimpleConsensusSnapshotTriggerThreshold(
- Long.parseLong(
- properties
- .getProperty(
- "config_node_simple_consensus_snapshot_trigger_threshold",
- String.valueOf(conf.getConfigNodeSimpleConsensusSnapshotTriggerThreshold()))
- .trim()));
-
conf.setSchemaRegionRatisSnapshotTriggerThreshold(
Long.parseLong(
properties
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
index 8238594756..6e7f21da20 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
@@ -198,8 +198,10 @@ public class NodeManager {
ratisConfig.setDataRequestTimeout(conf.getDataRegionRatisRequestTimeoutMs());
ratisConfig.setSchemaRequestTimeout(conf.getSchemaRegionRatisRequestTimeoutMs());
+ ratisConfig.setDataMaxRetryAttempts(conf.getDataRegionRatisMaxRetryAttempts());
ratisConfig.setDataInitialSleepTime(conf.getDataRegionRatisInitialSleepTimeMs());
ratisConfig.setDataMaxSleepTime(conf.getDataRegionRatisMaxSleepTimeMs());
+ ratisConfig.setSchemaMaxRetryAttempts(conf.getSchemaRegionRatisMaxRetryAttempts());
ratisConfig.setSchemaInitialSleepTime(conf.getSchemaRegionRatisInitialSleepTimeMs());
ratisConfig.setSchemaMaxSleepTime(conf.getSchemaRegionRatisMaxSleepTimeMs());
diff --git a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisClient.java b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisClient.java
index 1e6ea9e000..321b6ec51f 100644
--- a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisClient.java
+++ b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisClient.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.consensus.ratis;
import org.apache.iotdb.commons.client.BaseClientFactory;
import org.apache.iotdb.commons.client.ClientFactoryProperty;
import org.apache.iotdb.commons.client.ClientManager;
+import org.apache.iotdb.consensus.config.RatisConfig;
import org.apache.commons.pool2.PooledObject;
import org.apache.commons.pool2.impl.DefaultPooledObject;
@@ -37,6 +38,7 @@ import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
+import java.util.function.Supplier;
public class RatisClient {
private final Logger logger = LoggerFactory.getLogger(RatisClient.class);
@@ -75,15 +77,18 @@ public class RatisClient {
private final RaftProperties raftProperties;
private final RaftClientRpc clientRpc;
+ private final Supplier<RatisConfig.RatisConsensus> config;
public Factory(
ClientManager<RaftGroup, RatisClient> clientManager,
ClientFactoryProperty clientPoolProperty,
RaftProperties raftProperties,
- RaftClientRpc clientRpc) {
+ RaftClientRpc clientRpc,
+ Supplier<RatisConfig.RatisConsensus> config) {
super(clientManager, clientPoolProperty);
this.raftProperties = raftProperties;
this.clientRpc = clientRpc;
+ this.config = config;
}
@Override
@@ -99,7 +104,7 @@ public class RatisClient {
RaftClient.newBuilder()
.setProperties(raftProperties)
.setRaftGroup(group)
- .setRetryPolicy(new RatisRetryPolicy())
+ .setRetryPolicy(new RatisRetryPolicy(config.get()))
.setClientRpc(clientRpc)
.build(),
clientManager));
@@ -126,12 +131,16 @@ public class RatisClient {
private static final int maxAttempts = 10;
RetryPolicy defaultPolicy;
- public RatisRetryPolicy() {
+ public RatisRetryPolicy(RatisConfig.RatisConsensus config) {
defaultPolicy =
ExponentialBackoffRetry.newBuilder()
- .setBaseSleepTime(TimeDuration.valueOf(100, TimeUnit.MILLISECONDS))
- .setMaxSleepTime(TimeDuration.valueOf(10, TimeUnit.SECONDS))
- .setMaxAttempts(maxAttempts)
+ .setBaseSleepTime(
+ TimeDuration.valueOf(
+ config.getClientRetryInitialSleepTimeMs(), TimeUnit.MILLISECONDS))
+ .setMaxSleepTime(
+ TimeDuration.valueOf(
+ config.getClientRetryMaxSleepTimeMs(), TimeUnit.MILLISECONDS))
+ .setMaxAttempts(config.getClientMaxRetryAttempt())
.build();
}
diff --git a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisConsensus.java b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisConsensus.java
index ccefcb684e..dc1be157ca 100644
--- a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisConsensus.java
+++ b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisConsensus.java
@@ -69,6 +69,7 @@ import org.apache.ratis.protocol.exceptions.ResourceUnavailableException;
import org.apache.ratis.server.DivisionInfo;
import org.apache.ratis.server.RaftServer;
import org.apache.ratis.server.RaftServerConfigKeys;
+import org.apache.ratis.util.MemoizedSupplier;
import org.apache.ratis.util.function.CheckedSupplier;
import org.apache.thrift.TException;
import org.slf4j.Logger;
@@ -797,7 +798,11 @@ class RatisConsensus implements IConsensus {
ClientManager<RaftGroup, RatisClient> manager) {
return new GenericKeyedObjectPool<>(
new RatisClient.Factory(
- manager, new ClientFactoryProperty.Builder().build(), properties, clientRpc),
+ manager,
+ new ClientFactoryProperty.Builder().build(),
+ properties,
+ clientRpc,
+ MemoizedSupplier.valueOf(() -> config.getRatisConsensus())),
new ClientPoolProperty.Builder<RatisClient>().build().getConfig());
}
}
diff --git a/node-commons/src/assembly/resources/conf/iotdb-common.properties b/node-commons/src/assembly/resources/conf/iotdb-common.properties
index dc2f2b7125..bb0b0a63e7 100644
--- a/node-commons/src/assembly/resources/conf/iotdb-common.properties
+++ b/node-commons/src/assembly/resources/conf/iotdb-common.properties
@@ -997,7 +997,6 @@
# config_node_ratis_snapshot_trigger_threshold=400000
# schema_region_ratis_snapshot_trigger_threshold=400000
# data_region_ratis_snapshot_trigger_threshold=400000
-# config_node_simple_consensus_snapshot_trigger_threshold=400000
# allow flushing Raft Log asynchronously
# config_node_ratis_log_unsafe_flush_enable=false