yanghuafeng created HDFS-13845:
----------------------------------

             Summary: RBF: The default MountTableResolver cannot get 
multi-destination path for the default DestinationOrder.HASH
                 Key: HDFS-13845
                 URL: https://issues.apache.org/jira/browse/HDFS-13845
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: federation, hdfs
    Affects Versions: 2.9.1, 3.1.0, 3.0.0
            Reporter: yanghuafeng
            Assignee: yanghuafeng


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 
addMountTable and updateMountTable when we use MountTableResolver.  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-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org

Reply via email to