You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-issues@hadoop.apache.org by "Jian Zhang (Jira)" <ji...@apache.org> on 2024/07/09 09:05:00 UTC

[jira] [Updated] (HDFS-17544) [ARR] The router client rpc protocol supports asynchrony.

     [ https://issues.apache.org/jira/browse/HDFS-17544?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jian Zhang updated HDFS-17544:
------------------------------
    Description: 
*Describe*

In order not to affect other modules, when implementing router asynchronous client rpc protocolPB, it mainly extends the original protocolPB; The implemented protocolPB is as follows:
*RouterClientProtocolTranslatorPB* extends ClientNamenodeProtocolTranslatorPB

*RouterGetUserMappingsProtocolTranslatorPB* extends GetUserMappingsProtocolClientSideTranslatorPB

*RouterNamenodeProtocolTranslatorPB* extends NamenodeProtocolTranslatorPB

*RouterRefreshUserMappingsProtocolTranslatorPB* extends RefreshUserMappingsProtocolClientSideTranslatorPB

Then let the router's *ConnectionPool* use the aforementioned protocolPB

In the implementation of asynchronous Rpc.client, the main methods used include HADOOP-13226, HDFS-10224, etc

{*}AsyncRpcProtocolPBUtil{*}: Make the implementation of asynchronous rpc protocol more concise and clear.

 

*Test*

new UTs:

1.TestAsyncRpcProtocolPBUtil

2.TestRouterClientSideTranslatorPB

 

{*}Note{*}: For a discussion on the AsyncUtil introduced by this PR, please refer to it HDFS-17543  This PR requires the use of this tool; Please ignore the modification of RouterRpcClient, just for the convenience of testing the asynchronous client mentioned above. This pull request is a follow-up to HDFS-17522, and thus depends on the code from HDFS-17522. Before HDFS-17522 is merged, you can refer to this pull request to understand how to use the asynchronous IPC client in HDFS-17522.

  was:
*Describe*

In order not to affect other modules, when implementing router asynchronous client rpc protocolPB, it mainly extends the original protocolPB; The implemented protocolPB is as follows:
*RouterClientProtocolTranslatorPB* extends ClientNamenodeProtocolTranslatorPB

*RouterGetUserMappingsProtocolTranslatorPB* extends GetUserMappingsProtocolClientSideTranslatorPB

*RouterNamenodeProtocolTranslatorPB* extends NamenodeProtocolTranslatorPB

*RouterRefreshUserMappingsProtocolTranslatorPB* extends RefreshUserMappingsProtocolClientSideTranslatorPB

Then let the router's *ConnectionPool* use the aforementioned protocolPB

In the implementation of asynchronous Rpc.client, the main methods used include HADOOP-13226, HDFS-10224, etc

{*}AsyncRpcProtocolPBUtil{*}: Make the implementation of asynchronous rpc protocol more concise and clear.

 

*Test*

I modified RouterRpcClient to use asynchronous client protocolPB for testing.

 

{*}Note{*}: For a discussion on the AsyncUtil introduced by this PR, please refer to it HDFS-17543  This PR requires the use of this tool; Please ignore the modification of RouterRpcClient, just for the convenience of testing the asynchronous client mentioned above.


> [ARR] The router client rpc protocol supports asynchrony.
> ---------------------------------------------------------
>
>                 Key: HDFS-17544
>                 URL: https://issues.apache.org/jira/browse/HDFS-17544
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Jian Zhang
>            Assignee: Jian Zhang
>            Priority: Major
>              Labels: pull-request-available
>
> *Describe*
> In order not to affect other modules, when implementing router asynchronous client rpc protocolPB, it mainly extends the original protocolPB; The implemented protocolPB is as follows:
> *RouterClientProtocolTranslatorPB* extends ClientNamenodeProtocolTranslatorPB
> *RouterGetUserMappingsProtocolTranslatorPB* extends GetUserMappingsProtocolClientSideTranslatorPB
> *RouterNamenodeProtocolTranslatorPB* extends NamenodeProtocolTranslatorPB
> *RouterRefreshUserMappingsProtocolTranslatorPB* extends RefreshUserMappingsProtocolClientSideTranslatorPB
> Then let the router's *ConnectionPool* use the aforementioned protocolPB
> In the implementation of asynchronous Rpc.client, the main methods used include HADOOP-13226, HDFS-10224, etc
> {*}AsyncRpcProtocolPBUtil{*}: Make the implementation of asynchronous rpc protocol more concise and clear.
>  
> *Test*
> new UTs:
> 1.TestAsyncRpcProtocolPBUtil
> 2.TestRouterClientSideTranslatorPB
>  
> {*}Note{*}: For a discussion on the AsyncUtil introduced by this PR, please refer to it HDFS-17543  This PR requires the use of this tool; Please ignore the modification of RouterRpcClient, just for the convenience of testing the asynchronous client mentioned above. This pull request is a follow-up to HDFS-17522, and thus depends on the code from HDFS-17522. Before HDFS-17522 is merged, you can refer to this pull request to understand how to use the asynchronous IPC client in HDFS-17522.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org