[ https://issues.apache.org/jira/browse/HDFS-17596?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17888486#comment-17888486 ]
ASF GitHub Bot commented on HDFS-17596: --------------------------------------- hfutatzhanghb commented on code in PR #6988: URL: https://github.com/apache/hadoop/pull/6988#discussion_r1796307998 ########## hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcServer.java: ########## @@ -791,6 +800,36 @@ <T> T invokeAtAvailableNs(RemoteMethod method, Class<T> clazz) return invokeOnNs(method, clazz, io, nss); } + <T> T invokeAtAvailableNsAsync(RemoteMethod method, Class<T> clazz) + throws IOException { + String nsId = subclusterResolver.getDefaultNamespace(); + // If default Ns is not present return result from first namespace. + Set<FederationNamespaceInfo> nss = namenodeResolver.getNamespaces(); + // If no namespace is available, throw IOException. + IOException io = new IOException("No namespace available."); + + asyncComplete(null); + if (!nsId.isEmpty()) { + asyncTry(() -> { + rpcClient.invokeSingle(nsId, method, clazz); + }); + + asyncCatch((AsyncCatchFunction<T, IOException>)(res, ioe) -> { + if (!clientProto.isUnavailableSubclusterException(ioe)) { + LOG.debug("{} exception cannot be retried", + ioe.getClass().getSimpleName()); + throw ioe; + } + nss.removeIf(n -> n.getNameserviceId().equals(nsId)); + invokeOnNs(method, clazz, io, nss); Review Comment: @KeeProMise Sir, thanks for reviewing , this PR is depended on HDFS-17601. I will continue doing this PR after HDFS-17601 is resolved. > [ARR] RouterStoragePolicy supports asynchronous rpc. > ---------------------------------------------------- > > Key: HDFS-17596 > URL: https://issues.apache.org/jira/browse/HDFS-17596 > Project: Hadoop HDFS > Issue Type: Sub-task > Reporter: Jian Zhang > Assignee: farmmamba > Priority: Major > Labels: pull-request-available > > *Describe* > The main new addition is RouterAsyncStoragePolicy, which extends > RouterStoragePolicy so that supports asynchronous rpc. -- 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