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

Daryn Sharp commented on HADOOP-10034:
--------------------------------------

I'm of course open to possibilities but I can't see how to do a correct 
solution.  The suggestion here is akin to a NFS server resolving symlinks for 
the client.

The leaking of abstractions into the NN is a bad idea in general.  Path 
resolution becomes much more complicated.  Plus you're also assuming the 
semantics of the client fs is a plain/vanilla viewfs.  What if I'm using a 
merge/union mount (not implemented, but intended per the viewfs code)?  What if 
I'm using a filter fs that would normally do some action based on the path?  
Ie. filter it out path, rewrite it to something else, etc?

For instance, I've considered implementing a filter fs to provide transparent 
har support.  It would rely on "seeing" the har extension in the path, mask it 
to look like a standard directory, and delegating the remainder of the path to 
har.  Symlinks in the path to the har will break this implementation because 
the client won't see the har extension and the NN will throw a FNF.

Server-side resolution becomes very limiting.  A better approach may be to 
consider providing something like a {{DirectoryWalker}} class that can cache 
the intermediate resolutions.


> 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