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

Deshui Yu commented on HDFS-14316:
----------------------------------

Hi, [~elgoiri], in RouterClientProtocol.java, line 238~251:

238         try {
239           RemoteLocation createLocation = rpcServer.getCreateLocation(src);
240           return (HdfsFileStatus) rpcClient.invokeSingle(createLocation, 
method);
241         } catch (Exception e) {
242           if (!rpcServer.isPathFaultTolerant(src)) {
243             throw e;
244           }
245           LOG.error("Cannot create {}: {}", src, e.getMessage());
246           List<RemoteLocation> locations =
247               rpcServer.getLocationsForPath(src, true);
248           LOG.info("{} supports failed subclusters, trying: {}", src, 
locations);
249           return rpcClient.invokeSequential(
250               locations, method, HdfsFileStatus.class, null);
251         }

We use try-fail-retry mode to handle subcluster failure and continue to write 
in next available(maybe) subcluster. Here're some concerns from my perspective:
1. Can we make sure the RemoteLocation list returned in line 246 will not 
contain the failed subcluster anymore (especially in Random Order), or another 
failed subcluster? If not, maybe line 249 will also throw exception in catch{} 
clause. 
2. try-fail-retry mode is straight-forward and simple to implement, but the 
latency is increased once a subclass fail since the create operation requires 
2-rounds rpc call to namenodes. Since router has a global view about the 
availability of subclusters, can we utilize this global knowledge to skip the 
failed subcluster rather than try-fail-retry? 


> RBF: Support unavailable subclusters for mount points with multiple 
> destinations
> --------------------------------------------------------------------------------
>
>                 Key: HDFS-14316
>                 URL: https://issues.apache.org/jira/browse/HDFS-14316
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Íñigo Goiri
>            Assignee: Íñigo Goiri
>            Priority: Major
>         Attachments: HDFS-14316-HDFS-13891.000.patch, 
> HDFS-14316-HDFS-13891.001.patch
>
>
> Currently mount points with multiple destinations (e.g., HASH_ALL) fail 
> writes when the destination subcluster is down. We need an option to allow 
> writing in other subclusters when one is down.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to