spacemonkd opened a new pull request, #1538:
URL: https://github.com/apache/ratis/pull/1538

   ## What changes were proposed in this pull request?
   
   RATIS-2629. Handle Netty based request asynchronously and improve exception 
handling
   
   Currently NettyRpcService handles every inbound request synchronously on the 
Netty IO event-loop thread and its inbound handler does not override 
exceptionCaught.
   
   This can cause:
   - a slow or long-running request occupies the worker thread delaying all 
other requests on that event loop
   - only IOException is converted into an error reply. Any other Throwable 
escapes the handler with no exceptionCaught, Netty's default handling only logs 
it and never writes a reply, so the client blocks until its request timeout.
   
   This patch offloads the request handling out of the core IO path, and closes 
the channel to prevent blocking.
   This mirrors how gRPC handles the requests.
   
   ## What is the link to the Apache JIRA
   https://issues.apache.org/jira/browse/RATIS-2629
   
   ## How was this patch tested?
   Patch was tested via unit tests.


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