[ https://issues.apache.org/jira/browse/HADOOP-10034?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13790618#comment-13790618 ]
Chris Nauroth commented on HADOOP-10034: ---------------------------------------- Can we explore a hybrid approach? Suppose the client passes a representation of its viewfs mount table in NN RPC requests. Then, the NN would know that it cannot do server-side resolution if a symlink target jumps out to a different mount point. The RPC responses would need some kind of flag or optional field per path to indicate whether or not resolution was already done. Thus, all symlinks within a single mount point get resolved server-side, but we don't lose correctness on symlink targets outside the mount point. This is still likely to cut down RPC chatter in common cases. If no viewfs is in use on the client side at all, then we can represent this in the RPC requests as a degenerate case. It's a mount table with a single entry: / -> hdfs://. This effectively means that the NN is free to resolve all symlink targets, because the client has no intention of resolving them differently. The downside is that we'd be leaking the viewfs abstraction down to a specific filesystem implementation. It's also a lot of protocol change, and I haven't yet considered backwards-compatibility. > optimize same-filesystem symlinks by doing resolution server-side > ----------------------------------------------------------------- > > Key: HADOOP-10034 > URL: https://issues.apache.org/jira/browse/HADOOP-10034 > Project: Hadoop Common > Issue Type: Sub-task > Components: fs > Reporter: Colin Patrick McCabe > > We should optimize same-filesystem symlinks by doing resolution server-side > rather than client side, as discussed on HADOOP-9780. -- This message was sent by Atlassian JIRA (v6.1#6144)