[ https://issues.apache.org/jira/browse/HDFS-17545?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jian Zhang updated HDFS-17545: ------------------------------ Description: *Describe* 1. Mainly using AsyncUtil to implement {*}RouterAsyncRpcClient{*}, this class extends RouterRpcClient, enabling the {*}invoiceAll{*}, {*}invoiceMethod{*}, {*}invoiceSequential{*}, {*}invoiceConcurrent{*}, and *invoiceSingle* methods to support asynchrony. 2. Use two thread pools, *asyncRouterHandler* and {*}asyncRouterResponder{*}, to handle asynchronous requests and responses, respectively. 3. Added {*}DFS_ROUTER_RPC_ENABLE_ASYNC{*}, {*}DFS_ROUTER_RPC_ASYNC_HANDLER_COUNT{*}, *DFS_ROUTER_RPC_ASYNC_RESPONDER_COUNT_DEFAULT* to configure whether to use async router, as well as the number of asyncRouterHandlers and asyncRouterResponders. 4. Using *ThreadLocalContext* to maintain thread local variables, ensuring that thread local variables can be correctly passed between handler, asyncRouterHandler, and asyncRouterResponder. *Test* new UT TestRouterAsyncRpcClient Note: For discussions on *AsyncUtil* and client {*}protocolPB{*}, please refer to HDFS-17543 and HDFS-17544. was: *Describe* 1. Mainly using AsyncUtil to implement {*}RouterAsyncRpcClient{*}, this class extends RouterRpcClient, enabling the {*}invoiceAll{*}, {*}invoiceMethod{*}, {*}invoiceSequential{*}, {*}invoiceConcurrent{*}, and *invoiceSingle* methods to support asynchrony. 2. Use two thread pools, *asyncRouterHandler* and {*}asyncRouterResponder{*}, to handle asynchronous requests and responses, respectively. 3. Added {*}DFS_ROUTER_RPC_ENABLE_ASYNC{*}, {*}DFS_ROUTER_RPC_ASYNC_HANDLER_COUNT{*}, *DFS_ROUTER_RPC_ASYNC_RESPONDER_COUNT_DEFAULT* to configure whether to use async router, as well as the number of asyncRouterHandlers and asyncRouterResponders. 4. Using *ThreadLocalContext* to maintain thread local variables, ensuring that thread local variables can be correctly passed between handler, asyncRouterHandler, and asyncRouterResponder. *Test* Currently, I let handler wait synchronously for the response of async resonder to test the function of routeraysncRpcClient. Note: For discussions on *AsyncUtil* and client {*}protocolPB{*}, please refer to HDFS-17543 and HDFS-17544. > [ARR] router async rpc client. > ------------------------------ > > Key: HDFS-17545 > URL: https://issues.apache.org/jira/browse/HDFS-17545 > Project: Hadoop HDFS > Issue Type: Sub-task > Reporter: Jian Zhang > Assignee: Jian Zhang > Priority: Major > Labels: pull-request-available > > *Describe* > 1. Mainly using AsyncUtil to implement {*}RouterAsyncRpcClient{*}, this class > extends RouterRpcClient, enabling the {*}invoiceAll{*}, {*}invoiceMethod{*}, > {*}invoiceSequential{*}, {*}invoiceConcurrent{*}, and *invoiceSingle* methods > to support asynchrony. > 2. Use two thread pools, *asyncRouterHandler* and {*}asyncRouterResponder{*}, > to handle asynchronous requests and responses, respectively. > 3. Added {*}DFS_ROUTER_RPC_ENABLE_ASYNC{*}, > {*}DFS_ROUTER_RPC_ASYNC_HANDLER_COUNT{*}, > *DFS_ROUTER_RPC_ASYNC_RESPONDER_COUNT_DEFAULT* to configure whether to use > async router, as well as the number of asyncRouterHandlers and > asyncRouterResponders. > 4. Using *ThreadLocalContext* to maintain thread local variables, ensuring > that thread local variables can be correctly passed between handler, > asyncRouterHandler, and asyncRouterResponder. > > *Test* > new UT TestRouterAsyncRpcClient > Note: For discussions on *AsyncUtil* and client {*}protocolPB{*}, please > refer to HDFS-17543 and HDFS-17544. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org