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