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

Brahma Reddy Battula commented on HDFS-13845:
---------------------------------------------

Patch lgtm. Apart from the check-style comments. Bytheway,It's nice catch.

 

FYI. HDFS-13857 might need to rebase after this committed.( if this goes first).

As both throws IOE on same method. 
{code:java}
+ public PathLocation lookupLocation(final String path) throws IOException { 
{code}
 

> RBF: The default MountTableResolver should fail resolving multi-destination 
> paths
> ---------------------------------------------------------------------------------
>
>                 Key: HDFS-13845
>                 URL: https://issues.apache.org/jira/browse/HDFS-13845
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: federation, hdfs
>    Affects Versions: 3.0.0, 3.1.0, 2.9.1
>            Reporter: yanghuafeng
>            Assignee: yanghuafeng
>            Priority: Major
>         Attachments: HDFS-13845.001.patch, HDFS-13845.002.patch, 
> HDFS-13845.003.patch
>
>
> When we use the default MountTableResolver to resolve the path, we cannot get 
> the destination paths for the default DestinationOrder.HASH. 
> {code:java}
> // Some comments here
> private static PathLocation buildLocation(
>       ......
>     List<RemoteLocation> locations = new LinkedList<>();
>     for (RemoteLocation oneDst : entry.getDestinations()) {
>       String nsId = oneDst.getNameserviceId();
>       String dest = oneDst.getDest();
>       String newPath = dest;
>       if (!newPath.endsWith(Path.SEPARATOR) && !remainingPath.isEmpty()) {
>         newPath += Path.SEPARATOR;
>       }
>       newPath += remainingPath;
>       RemoteLocation remoteLocation = new RemoteLocation(nsId, newPath, path);
>       locations.add(remoteLocation);
>     }
>     DestinationOrder order = entry.getDestOrder();
>     return new PathLocation(srcPath, locations, order);
>   }
> {code}
> The default order will be hash, but the HashFirstResolver will not be invoked 
> to order the location.
> It is ambiguous for the MountTableResolver that we will see the HASH order in 
> the web ui for multi-destinations path but we cannot get the result.
> In my opinion, the MountTableResolver will be a simple resolver to implement 
> 1 to 1 not including the 1 to n destinations. So we should check the 
> buildLocation. If the entry has multi destinations, we should reject it.



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

---------------------------------------------------------------------
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