Hello, everyone, so sorry to bother you and I would like to discuss how to optimize the invoke retry logic of async repsonder when some nameservices are slow. Currently, all nameservices share one async responder thread pool which is in class AsyncRpcProtocolPBUtil. Think below situation, we have two nameservices: ns1 and ns2, and the performance of ns2 is very pool. If we hit the invoke retry logic in handlerInvokeException, we will use the thread in async responder thread pool to perform invoke retry. As mentioned before, and the performance of ns2 is very pool. This will cause all threads in the async responder thread pool being occupied by the slow ns2 cluster in extreme situation. This is a critical problem and my idea is to separate async responder thread pool by nameservice as well like async handler thread pool. I would appreciate to hear your thoughts.
Best Regards, - Zhang Haobo