HDDS-2153. Add a config to tune max pending requests in Ratis leader
Closes #1474
This commit is contained in:
parent
d6b0a8da77
commit
a530ac3f50
|
@ -105,6 +105,11 @@ public final class ScmConfigKeys {
|
||||||
// TODO: Set to 1024 once RATIS issue around purge is fixed.
|
// TODO: Set to 1024 once RATIS issue around purge is fixed.
|
||||||
public static final int DFS_CONTAINER_RATIS_LOG_PURGE_GAP_DEFAULT =
|
public static final int DFS_CONTAINER_RATIS_LOG_PURGE_GAP_DEFAULT =
|
||||||
1000000;
|
1000000;
|
||||||
|
|
||||||
|
public static final String DFS_CONTAINER_RATIS_LEADER_NUM_PENDING_REQUESTS =
|
||||||
|
"dfs.container.ratis.leader.num.pending.requests";
|
||||||
|
public static final int
|
||||||
|
DFS_CONTAINER_RATIS_LEADER_NUM_PENDING_REQUESTS_DEFAULT = 4096;
|
||||||
// expiry interval stateMachineData cache entry inside containerStateMachine
|
// expiry interval stateMachineData cache entry inside containerStateMachine
|
||||||
public static final String
|
public static final String
|
||||||
DFS_CONTAINER_RATIS_STATEMACHINEDATA_CACHE_EXPIRY_INTERVAL =
|
DFS_CONTAINER_RATIS_STATEMACHINEDATA_CACHE_EXPIRY_INTERVAL =
|
||||||
|
|
|
@ -329,6 +329,11 @@ public final class OzoneConfigKeys {
|
||||||
ScmConfigKeys.DFS_CONTAINER_RATIS_LOG_PURGE_GAP;
|
ScmConfigKeys.DFS_CONTAINER_RATIS_LOG_PURGE_GAP;
|
||||||
public static final int DFS_CONTAINER_RATIS_LOG_PURGE_GAP_DEFAULT =
|
public static final int DFS_CONTAINER_RATIS_LOG_PURGE_GAP_DEFAULT =
|
||||||
ScmConfigKeys.DFS_CONTAINER_RATIS_LOG_PURGE_GAP_DEFAULT;
|
ScmConfigKeys.DFS_CONTAINER_RATIS_LOG_PURGE_GAP_DEFAULT;
|
||||||
|
public static final String DFS_CONTAINER_RATIS_LEADER_NUM_PENDING_REQUESTS =
|
||||||
|
ScmConfigKeys.DFS_CONTAINER_RATIS_LEADER_NUM_PENDING_REQUESTS;
|
||||||
|
public static final int
|
||||||
|
DFS_CONTAINER_RATIS_LEADER_NUM_PENDING_REQUESTS_DEFAULT =
|
||||||
|
ScmConfigKeys.DFS_CONTAINER_RATIS_LEADER_NUM_PENDING_REQUESTS_DEFAULT;
|
||||||
public static final String DFS_RATIS_SERVER_REQUEST_TIMEOUT_DURATION_KEY =
|
public static final String DFS_RATIS_SERVER_REQUEST_TIMEOUT_DURATION_KEY =
|
||||||
ScmConfigKeys.DFS_RATIS_SERVER_REQUEST_TIMEOUT_DURATION_KEY;
|
ScmConfigKeys.DFS_RATIS_SERVER_REQUEST_TIMEOUT_DURATION_KEY;
|
||||||
public static final TimeDuration
|
public static final TimeDuration
|
||||||
|
|
|
@ -203,6 +203,14 @@
|
||||||
will use for writing chunks (60 by default).
|
will use for writing chunks (60 by default).
|
||||||
</description>
|
</description>
|
||||||
</property>
|
</property>
|
||||||
|
<property>
|
||||||
|
<name>dfs.container.ratis.leader.num.pending.requests</name>
|
||||||
|
<value>4096</value>
|
||||||
|
<tag>OZONE, RATIS, PERFORMANCE</tag>
|
||||||
|
<description>Maximum number of pending requests after which the leader
|
||||||
|
starts rejecting requests from client.
|
||||||
|
</description>
|
||||||
|
</property>
|
||||||
<property>
|
<property>
|
||||||
<name>dfs.container.ratis.replication.level</name>
|
<name>dfs.container.ratis.replication.level</name>
|
||||||
<value>MAJORITY</value>
|
<value>MAJORITY</value>
|
||||||
|
|
|
@ -33,6 +33,7 @@ import org.apache.hadoop.hdds.security.x509.SecurityConfig;
|
||||||
import org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient;
|
import org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient;
|
||||||
import org.apache.hadoop.hdds.tracing.TracingUtil;
|
import org.apache.hadoop.hdds.tracing.TracingUtil;
|
||||||
import org.apache.hadoop.ozone.OzoneConfigKeys;
|
import org.apache.hadoop.ozone.OzoneConfigKeys;
|
||||||
|
|
||||||
import org.apache.hadoop.ozone.OzoneConsts;
|
import org.apache.hadoop.ozone.OzoneConsts;
|
||||||
import org.apache.hadoop.ozone.container.common.interfaces.ContainerDispatcher;
|
import org.apache.hadoop.ozone.container.common.interfaces.ContainerDispatcher;
|
||||||
import org.apache.hadoop.ozone.container.common.statemachine.StateContext;
|
import org.apache.hadoop.ozone.container.common.statemachine.StateContext;
|
||||||
|
@ -225,6 +226,11 @@ public final class XceiverServerRatis extends XceiverServer {
|
||||||
setAutoTriggerEnabled(properties, true);
|
setAutoTriggerEnabled(properties, true);
|
||||||
RaftServerConfigKeys.Snapshot.
|
RaftServerConfigKeys.Snapshot.
|
||||||
setAutoTriggerThreshold(properties, snapshotThreshold);
|
setAutoTriggerThreshold(properties, snapshotThreshold);
|
||||||
|
int maxPendingRequets = conf.getInt(
|
||||||
|
OzoneConfigKeys.DFS_CONTAINER_RATIS_LEADER_NUM_PENDING_REQUESTS,
|
||||||
|
OzoneConfigKeys.DFS_CONTAINER_RATIS_LEADER_NUM_PENDING_REQUESTS_DEFAULT
|
||||||
|
);
|
||||||
|
RaftServerConfigKeys.Write.setElementLimit(properties, maxPendingRequets);
|
||||||
int logQueueNumElements =
|
int logQueueNumElements =
|
||||||
conf.getInt(OzoneConfigKeys.DFS_CONTAINER_RATIS_LOG_QUEUE_NUM_ELEMENTS,
|
conf.getInt(OzoneConfigKeys.DFS_CONTAINER_RATIS_LOG_QUEUE_NUM_ELEMENTS,
|
||||||
OzoneConfigKeys.DFS_CONTAINER_RATIS_LOG_QUEUE_NUM_ELEMENTS_DEFAULT);
|
OzoneConfigKeys.DFS_CONTAINER_RATIS_LOG_QUEUE_NUM_ELEMENTS_DEFAULT);
|
||||||
|
|
Loading…
Reference in New Issue