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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]