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

Reply via email to