[ https://issues.apache.org/jira/browse/HDFS-5293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13788659#comment-13788659 ]
Colin Patrick McCabe commented on HDFS-5293: -------------------------------------------- bq. That doesn't work in stacked/proxy filesystems or anything that wants to do custom filtering. At a minimum, you'd need to make the NN "chroot aware" by defining / to be another path, treat ".." out of the root as an unresolved link. Then the NN has to deal with cyclic links, etc. I'm not advocating any of that. I'm just saying the NameNode should handle resolving the symlinks that it can resolve, and throw {{UnresolvedLinkException}} for the ones which it can't. A symlink which points to a different scheme/authority or to something "above root" obviously still needs to be handled via an {{UnresolvedLinkException}}. Essentially, I am proposing an optimization which can used on non-cross-filesystem symlinks. This is also how {{LocalFileSystem}} currently works. Anyway, we can continue discussing that optimization on HADOOP-9780 if you want, since it's a separate issue from the RPC reduction issue you're discussing here. > Symlink resolution requires unnecessary RPCs > -------------------------------------------- > > Key: HDFS-5293 > URL: https://issues.apache.org/jira/browse/HDFS-5293 > Project: Hadoop HDFS > Issue Type: Improvement > Components: namenode > Affects Versions: 2.0.0-alpha, 3.0.0 > Reporter: Daryn Sharp > Priority: Critical > > When the NN encounters a symlink, it throws an {{UnresolvedLinkException}}. > This exception contains only the path that is a symlink. The client issues > another RPC to obtain the link target, followed by another RPC with the link > target + remainder of the original path. > {{UnresolvedLinkException}} should be returning both the link and the target > to avoid a costly and unnecessary intermediate RPC to obtain the link target. -- This message was sent by Atlassian JIRA (v6.1#6144)