[ 
https://issues.apache.org/jira/browse/HDFS-17545?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17880868#comment-17880868
 ] 

ASF GitHub Bot commented on HDFS-17545:
---------------------------------------

KeeProMise commented on PR #6871:
URL: https://github.com/apache/hadoop/pull/6871#issuecomment-2342733716

   Hi, @goiri @simbadzina @Hexiaoqiao @sjlee @ayushtkn @haiyang1987 @ZanderXu  
the PR has been blocked for 2 months, and if everyone has time, please help to 
review it because several subtask PRs need to depend on this PR. This PR does 
not modify the existing synchronous router logic. To facilitate review, my 
**main modifications** are as follows:
   - RouterRpcClient.java: The original functionality and logic have not been 
changed; I only have extracted some common methods.
   - RouterAsyncRpcClient.java: An asynchronous implementation of 
RouterRpcClient.
   - Added configuration for the asynchronous feature toggle, as well as the 
number of asynchronous handlers and responders.
   - Using ThreadLocalContext to maintain thread local variables, ensuring that 
thread local variables can be correctly passed between handler, 
asyncRouterHandler, and asyncRouterResponder.
   
   The PRs that depend on this PR are:
   https://github.com/apache/hadoop/pull/6994
   https://github.com/apache/hadoop/pull/6988
   https://github.com/apache/hadoop/pull/6986
   https://github.com/apache/hadoop/pull/6983




> [ARR] router async rpc client.
> ------------------------------
>
>                 Key: HDFS-17545
>                 URL: https://issues.apache.org/jira/browse/HDFS-17545
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: rbf
>            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

Reply via email to