diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java index a456d821b8cc..240a76b7e485 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java @@ -443,78 +443,6 @@ public final class ScmConfigKeys { = "ozone.scm.grpc.port"; public static final int OZONE_SCM_GRPC_PORT_DEFAULT = 9895; - public static final String OZONE_SCM_RATIS_RPC_TYPE_KEY - = "ozone.scm.ratis.rpc.type"; - public static final String OZONE_SCM_RATIS_RPC_TYPE_DEFAULT - = "GRPC"; - - // SCM Ratis Log configurations - public static final String OZONE_SCM_RATIS_STORAGE_DIR - = "ozone.scm.ratis.storage.dir"; - public static final String OZONE_SCM_RATIS_SEGMENT_SIZE_KEY - = "ozone.scm.ratis.segment.size"; - public static final String OZONE_SCM_RATIS_SEGMENT_SIZE_DEFAULT - = "16KB"; - public static final String OZONE_SCM_RATIS_SEGMENT_PREALLOCATED_SIZE_KEY - = "ozone.scm.ratis.segment.preallocated.size"; - public static final String OZONE_SCM_RATIS_SEGMENT_PREALLOCATED_SIZE_DEFAULT - = "16KB"; - - // SCM Ratis Log Appender configurations - public static final String - OZONE_SCM_RATIS_LOG_APPENDER_QUEUE_NUM_ELEMENTS = - "ozone.scm.ratis.log.appender.queue.num-elements"; - public static final int - OZONE_SCM_RATIS_LOG_APPENDER_QUEUE_NUM_ELEMENTS_DEFAULT = 1024; - public static final String OZONE_SCM_RATIS_LOG_APPENDER_QUEUE_BYTE_LIMIT = - "ozone.scm.ratis.log.appender.queue.byte-limit"; - public static final String - OZONE_SCM_RATIS_LOG_APPENDER_QUEUE_BYTE_LIMIT_DEFAULT = "32MB"; - public static final String OZONE_SCM_RATIS_LOG_PURGE_GAP = - "ozone.scm.ratis.log.purge.gap"; - public static final int OZONE_SCM_RATIS_LOG_PURGE_GAP_DEFAULT = 1000000; - - // SCM Ratis server configurations - public static final String OZONE_SCM_RATIS_SERVER_REQUEST_TIMEOUT_KEY - = "ozone.scm.ratis.server.request.timeout"; - public static final TimeDuration - OZONE_SCM_RATIS_SERVER_REQUEST_TIMEOUT_DEFAULT - = TimeDuration.valueOf(3000, TimeUnit.MILLISECONDS); - public static final String - OZONE_SCM_RATIS_SERVER_RETRY_CACHE_TIMEOUT_KEY - = "ozone.scm.ratis.server.retry.cache.timeout"; - public static final TimeDuration - OZONE_SCM_RATIS_SERVER_RETRY_CACHE_TIMEOUT_DEFAULT - = TimeDuration.valueOf(600000, TimeUnit.MILLISECONDS); - public static final String OZONE_SCM_RATIS_MINIMUM_TIMEOUT_KEY - = "ozone.scm.ratis.minimum.timeout"; - public static final TimeDuration OZONE_SCM_RATIS_MINIMUM_TIMEOUT_DEFAULT - = TimeDuration.valueOf(1, TimeUnit.SECONDS); - - public static final String OZONE_SCM_RATIS_REQUEST_TIMEOUT_KEY - = "ozone.scm.ratis.minimum.timeout"; - public static final String OZONE_SCM_RATIS_REQUEST_TIMEOUT_DEFAULT - = "30s"; - - // SCM Ratis Leader Election configurations - public static final String - OZONE_SCM_LEADER_ELECTION_MINIMUM_TIMEOUT_DURATION_KEY = - "ozone.scm.ratis.leader.election.minimum.timeout.duration"; - public static final TimeDuration - OZONE_SCM_LEADER_ELECTION_MINIMUM_TIMEOUT_DURATION_DEFAULT = - TimeDuration.valueOf(1, TimeUnit.SECONDS); - public static final String OZONE_SCM_RATIS_SERVER_FAILURE_TIMEOUT_DURATION_KEY - = "ozone.scm.ratis.server.failure.timeout.duration"; - public static final TimeDuration - OZONE_SCM_RATIS_SERVER_FAILURE_TIMEOUT_DURATION_DEFAULT - = TimeDuration.valueOf(120, TimeUnit.SECONDS); - - // SCM Leader server role check interval - public static final String OZONE_SCM_RATIS_SERVER_ROLE_CHECK_INTERVAL_KEY - = "ozone.scm.ratis.server.role.check.interval"; - public static final TimeDuration - OZONE_SCM_RATIS_SERVER_ROLE_CHECK_INTERVAL_DEFAULT - = TimeDuration.valueOf(15, TimeUnit.SECONDS); public static final String OZONE_SCM_DATANODE_ADMIN_MONITOR_INTERVAL = "ozone.scm.datanode.admin.monitor.interval"; diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMHAConfiguration.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMHAConfiguration.java index d1d2e887b646..1f0dfe53e6ec 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMHAConfiguration.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMHAConfiguration.java @@ -132,11 +132,11 @@ public class SCMHAConfiguration { @Config(key = "ratis.request.timeout", type = ConfigType.TIME, - defaultValue = "3000ms", + defaultValue = "30s", tags = {SCM, OZONE, HA, RATIS}, description = "The timeout duration for SCM's Ratis server RPC." ) - private long ratisRequestTimeout = 3000L; + private long ratisRequestTimeout = 30 * 1000L; @Config(key = "ratis.server.retry.cache.timeout", type = ConfigType.TIME, diff --git a/hadoop-hdds/common/src/main/resources/ozone-default.xml b/hadoop-hdds/common/src/main/resources/ozone-default.xml index a66ee9368775..2d6b98826835 100644 --- a/hadoop-hdds/common/src/main/resources/ozone-default.xml +++ b/hadoop-hdds/common/src/main/resources/ozone-default.xml @@ -2053,128 +2053,6 @@ - - ozone.scm.ratis.rpc.type - GRPC - OZONE, SCM, HA, RATIS - Ratis supports different kinds of transports like netty, GRPC, - Hadoop RPC etc. This picks one of those for this cluster. - - - - - ozone.scm.ratis.storage.dir - - OZONE, SCM, HA, RATIS, STORAGE - This directory is used for storing SCM's Ratis metadata like - logs. If this is not set then default metadata dirs is used. A warning - will be logged if this not set. Ideally, this should be mapped to a - fast disk like an SSD. - If undefined, SCM ratis storage dir will fallback to ozone.metadata.dirs. - This fallback approach is not recommended for production environments. - - - - - ozone.scm.ratis.segment.size - 16KB - OZONE, SCM, HA, RATIS, PERFORMANCE - The size of the raft segment used by Apache Ratis on SCM. - (16 KB by default) - - - - - ozone.scm.ratis.segment.preallocated.size - 16KB - OZONE, SCM, HA, RATIS, PERFORMANCE - The size of the buffer which is preallocated for raft segment - used by Apache Ratis on SCM.(16 KB by default) - - - - - ozone.scm.ratis.log.appender.queue.num-elements - 1024 - OZONE, DEBUG, SCM, HA, RATIS - Number of operation pending with Raft's Log Worker. - - - - ozone.scm.ratis.log.appender.queue.byte-limit - 32MB - OZONE, DEBUG, SCM, HA, RATIS - Byte limit for Raft's Log Worker queue. - - - - ozone.scm.ratis.log.purge.gap - 1000000 - OZONE, SCM, HA, RATIS - The minimum gap between log indices for Raft server to purge - its log segments after taking snapshot. - - - - ozone.scm.ratis.server.request.timeout - 3s - OZONE, SCM, HA, RATIS - The timeout duration for SCM's ratis server request. - - - - ozone.scm.ratis.server.retry.cache.timeout - 600000ms - OZONE, SCM, HA, RATIS - Retry Cache entry timeout for SCM's ratis server. - - - - ozone.scm.ratis.minimum.timeout - 1s - OZONE, SCM, HA, RATIS - The minimum timeout duration for SCM's Ratis server rpc. - - - - - ozone.scm.ratis.minimum.timeout - 30s - OZONE, SCM, HA, RATIS - The request timeout duration for SCM's Ratis server request. - - - - - ozone.scm.ratis.leader.election.minimum.timeout.duration - 1s - OZONE, SCM, HA, RATIS - The minimum timeout duration for SCM ratis leader election. - Default is 1s. - - - - - ozone.scm.ratis.server.failure.timeout.duration - 120s - OZONE, SCM, HA, RATIS - The timeout duration for ratis server failure detection, - once the threshold has reached, the ratis state machine will be informed - about the failure in the ratis ring. - - - - - ozone.scm.ratis.server.role.check.interval - 15s - OZONE, SCM, HA, RATIS - The interval between SCM leader performing a role - check on its ratis server. Ratis server informs SCM if it - loses the leader role. The scheduled check is an secondary - check to ensure that the leader role is updated periodically - . - - hdds.metadata.dir diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMRatisServerImpl.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMRatisServerImpl.java index 063c007c0e89..6ab46f54c2c7 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMRatisServerImpl.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMRatisServerImpl.java @@ -34,7 +34,6 @@ import org.apache.hadoop.hdds.conf.OzoneConfiguration; import org.apache.hadoop.hdds.protocol.proto.SCMRatisProtocol.RequestType; import org.apache.hadoop.hdds.scm.AddSCMRequest; -import org.apache.hadoop.hdds.scm.ScmConfigKeys; import org.apache.hadoop.hdds.scm.server.StorageContainerManager; import org.apache.hadoop.net.NetUtils; import org.apache.hadoop.hdds.security.x509.SecurityConfig; @@ -206,10 +205,9 @@ public SCMRatisResponse submitRequest(SCMRatisRequest request) .setType(RaftClientRequest.writeRequestType()) .build(); // any request submitted to - final long requestTimeout = scm.getConfiguration() - .getTimeDuration(ScmConfigKeys.OZONE_SCM_RATIS_REQUEST_TIMEOUT_KEY, - ScmConfigKeys.OZONE_SCM_RATIS_REQUEST_TIMEOUT_DEFAULT, - TimeUnit.MILLISECONDS); + final long requestTimeout = + scm.getConfiguration().getObject(SCMHAConfiguration.class) + .getRatisRequestTimeout(); final RaftClientReply raftClientReply = server.submitClientRequestAsync(raftClientRequest) .get(requestTimeout, TimeUnit.MILLISECONDS);