Copilot commented on code in PR #10371:
URL: https://github.com/apache/ozone/pull/10371#discussion_r3309529026
##########
hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/XceiverServerGrpc.java:
##########
@@ -139,6 +139,17 @@ public XceiverServerGrpc(DatanodeDetails datanodeDetails,
.channelType(channelType)
.withOption(ChannelOption.SO_BACKLOG, soBacklog)
.executor(readExecutors)
+ // If a client does not send an actual functional business RPC for 15
minutes,
+ // the server kicks them off with a GOAWAY frame.
+ .maxConnectionIdle(15, TimeUnit.MINUTES)
+ // If the server receives absolutely zero network traffic from a
client for
+ // 5 minutes, the server proactively sends an HTTP/2 PING frame to
verify
+ // if the network wire or client machine is still alive.
+ .keepAliveTime(5, TimeUnit.MINUTES)
+ // If the server fires a ping and the client fails to respond with a
+ // PING ACK within 30 seconds, the server assumes the socket is a dead
+ // "zombie connection" and immediately destroys the TCP socket.
+ .keepAliveTimeout(30, TimeUnit.SECONDS)
Review Comment:
The new gRPC connection management thresholds are hard-coded (15m
maxConnectionIdle, 5m keepAliveTime, 30s keepAliveTimeout). These values can
have cluster-specific operational impact (extra PING traffic, disconnect
sensitivity) and are difficult to tune or roll back without a code change.
Please expose them as DatanodeConfiguration config keys (with these as
defaults) and wire them into the NettyServerBuilder setup.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]