[ 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