You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ratis.apache.org by GitBox <gi...@apache.org> on 2022/08/18 07:59:58 UTC

[GitHub] [ratis] szetszwo commented on a diff in pull request #713: RATIS-1638. Separate first election timeout

szetszwo commented on code in PR #713:
URL: https://github.com/apache/ratis/pull/713#discussion_r948776745


##########
ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java:
##########
@@ -626,6 +626,29 @@ static void setTimeoutMax(RaftProperties properties, TimeDuration maxDuration) {
       setTimeDuration(properties::setTimeDuration, TIMEOUT_MAX_KEY, maxDuration);
     }
 
+    /** separate first timeout so that the startup unavailable time can be reduced */
+    String FIRST_TIMEOUT_MIN_KEY = PREFIX + ".first.timeout.min";

Review Comment:
   Let's call it `raft.server.rpc.first-election.timeout.min`.



##########
ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java:
##########
@@ -626,6 +626,29 @@ static void setTimeoutMax(RaftProperties properties, TimeDuration maxDuration) {
       setTimeDuration(properties::setTimeDuration, TIMEOUT_MAX_KEY, maxDuration);
     }
 
+    /** separate first timeout so that the startup unavailable time can be reduced */
+    String FIRST_TIMEOUT_MIN_KEY = PREFIX + ".first.timeout.min";
+    TimeDuration FIRST_TIMEOUT_MIN_DEFAULT = TimeDuration.valueOf(150, TimeUnit.MILLISECONDS);

Review Comment:
   Let's use null as the default.



##########
ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java:
##########
@@ -626,6 +626,29 @@ static void setTimeoutMax(RaftProperties properties, TimeDuration maxDuration) {
       setTimeDuration(properties::setTimeDuration, TIMEOUT_MAX_KEY, maxDuration);
     }
 
+    /** separate first timeout so that the startup unavailable time can be reduced */
+    String FIRST_TIMEOUT_MIN_KEY = PREFIX + ".first.timeout.min";
+    TimeDuration FIRST_TIMEOUT_MIN_DEFAULT = TimeDuration.valueOf(150, TimeUnit.MILLISECONDS);
+    static TimeDuration firstTimeoutMin(RaftProperties properties) {
+      final TimeDuration fallbackFirstTimeoutMin = Rpc.timeoutMin(properties);

Review Comment:
   For fallback, we need to pass null for the log so that it won't print an additional log message.
   See https://github.com/apache/ratis/blob/323bd1017afdbe03f70cccb172412e6fab221797/ratis-grpc/src/main/java/org/apache/ratis/grpc/GrpcConfigKeys.java#L103



##########
ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java:
##########
@@ -626,6 +626,29 @@ static void setTimeoutMax(RaftProperties properties, TimeDuration maxDuration) {
       setTimeDuration(properties::setTimeDuration, TIMEOUT_MAX_KEY, maxDuration);
     }
 
+    /** separate first timeout so that the startup unavailable time can be reduced */
+    String FIRST_TIMEOUT_MIN_KEY = PREFIX + ".first.timeout.min";
+    TimeDuration FIRST_TIMEOUT_MIN_DEFAULT = TimeDuration.valueOf(150, TimeUnit.MILLISECONDS);
+    static TimeDuration firstTimeoutMin(RaftProperties properties) {
+      final TimeDuration fallbackFirstTimeoutMin = Rpc.timeoutMin(properties);
+      return getTimeDuration(properties.getTimeDuration(fallbackFirstTimeoutMin.getUnit()),

Review Comment:
   We also need a different get function; see https://github.com/apache/ratis/blob/323bd1017afdbe03f70cccb172412e6fab221797/ratis-grpc/src/main/java/org/apache/ratis/grpc/GrpcConfigKeys.java#L104



-- 
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: issues-unsubscribe@ratis.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org