diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java index 35d36275fb86..9f7b03f706db 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java @@ -244,6 +244,11 @@ private void setUpRatisStream(RaftProperties properties) { .getStreamWriteThreads(); RaftServerConfigKeys.DataStream.setAsyncWriteThreadPoolSize(properties, dataStreamWriteRequestThreadPoolSize); + int dataStreamClientPoolSize = + conf.getObject(DatanodeRatisServerConfig.class) + .getClientPoolSize(); + RaftServerConfigKeys.DataStream.setClientPoolSize(properties, + dataStreamClientPoolSize); } @SuppressWarnings("checkstyle:methodlength") diff --git a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/conf/DatanodeRatisServerConfig.java b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/conf/DatanodeRatisServerConfig.java index 205d92e955a2..3132928abe2e 100644 --- a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/conf/DatanodeRatisServerConfig.java +++ b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/conf/DatanodeRatisServerConfig.java @@ -158,6 +158,23 @@ public void setStreamWriteThreads(int streamWriteThreads) { this.streamWriteThreads = streamWriteThreads; } + @Config(key = "datastream.client.pool.size", + defaultValue = "10", + type = ConfigType.INT, + tags = {OZONE, DATANODE, RATIS, DATASTREAM}, + description = "Maximum number of client proxy in NettyServerStreamRpc " + + "for datastream write." + ) + private int clientPoolSize; + + public int getClientPoolSize() { + return clientPoolSize; + } + + public void setClientPoolSize(int clientPoolSize) { + this.clientPoolSize = clientPoolSize; + } + @Config(key = "delete.ratis.log.directory", defaultValue = "true", type = ConfigType.BOOLEAN,