CRZbulabula commented on PR #1466:
URL: https://github.com/apache/ratis/pull/1466#issuecomment-4535184461

   Thanks for the review. I have pushed commit 2088cdf7 addressing the comments:
   
   - Moved NettyUtils to ratis-common as org.apache.ratis.util.NettyUtils and 
removed the separate GrpcEventLoops helper.
   - Added gRPC configs similar to NettyConfigKeys:
     - raft.grpc.use-epoll
     - raft.grpc.client.worker-group.size
     - raft.grpc.server.worker-group.size
     - raft.grpc.server.boss-group.size
   - The worker-group.size defaults are now positive and CPU-based: Math.max(1, 
NettyRuntime.availableProcessors() * 2).
   - GrpcServicesImpl now creates one serverBosses group, one serverWorkers 
group, and one clientWorkers group. The server builders share 
serverBosses/serverWorkers, and all server-to-server clients share 
clientWorkers.
   - NettyUtils.shutdownGracefully(...) now starts shutdownGracefully() for all 
groups first, then awaits termination.
   - Verified with: mvn -pl ratis-grpc,ratis-netty,ratis-test -am -DskipTests 
clean test-compile
   
   For the performance question: I ran a manual MiniRaftClusterWithGrpc 
benchmark on my macOS arm64 host with JDK 21, using 500 warmup ops and 5000 
measured async sends at concurrency 16, with 3 iterations per config. Median 
results for worker sizes 8/16/24/32 were about 290/285/291/313 ops/s, p50 
53.4/56.0/54.3/49.8 ms, p99 75.6/75.4/71.2/77.0 ms, and 0 failures. This did 
not show a regression from using bounded/configurable worker groups; the gRPC 
worker group handles non-blocking I/O while request execution is still handled 
by raft.grpc.server.async.request.thread.pool.size.


-- 
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]

Reply via email to