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