[
https://issues.apache.org/jira/browse/HDFS-245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eli Collins updated HDFS-245:
-----------------------------
Attachment: symlink23-common.patch
symlink23-hdfs.patch
Hey Sanjay,
Thanks for taking a look.
bq. * Add final to parameters of the new methods you have added.
Fixed.
bq. * GetLinkTarget() - should this be public?
Good catch, made this protected.
bq. * Resolve() checks isUriPathAbsolute(). Actually you also need to check
that the the path is fully qualified (ie has a scheme). So if a Slash-relative
path name is returned (a mistake in file system impl) the patch will
*incorrectly* resolve it relative to the FileContext's default filesystem (ie
its Slash). The file system should have resolved it internally in the first
place. Hence it would be correct (but inefficient) for the client side to send
this back to the file system in which the symlink occurred; we should simple
report this an error rather then send it back to the file system.
Good point, createSymlink in FileContext now makes the link target fully
qualified. I added tests to TestLink that use fully qualified paths for both
the link and the target. I also added an isFullyQualified method to Path (and
tests to TestPath) and updated the comment for isAbsolute to match the
implementation (which looks correct).
Note that a slash-relative path being return is currently not a mistake in the
file system impl. as the client handles all UnresolvedPathExceptions. Making
the NN transparently resolve links when the target is in its namespace is
definitely a worthwhile optimization. Need to add more tests first.
bq. * Why pass the "this" as a parameter to resolve(this, path) - the
FileContext is the "this" instance any way.
Not following, resolve is a method of FSLinkResolver not FileContext.
Thanks,
Eli
> Create symbolic links in HDFS
> -----------------------------
>
> Key: HDFS-245
> URL: https://issues.apache.org/jira/browse/HDFS-245
> Project: Hadoop HDFS
> Issue Type: New Feature
> Reporter: dhruba borthakur
> Assignee: dhruba borthakur
> Attachments: 4044_20081030spi.java, designdocv1.txt, designdocv2.txt,
> HADOOP-4044-strawman.patch, symlink-0.20.0.patch, symLink1.patch,
> symLink1.patch, symLink11.patch, symLink12.patch, symLink13.patch,
> symLink14.patch, symLink15.txt, symLink15.txt, symlink16-common.patch,
> symlink16-hdfs.patch, symlink16-mr.patch, symlink17-common.txt,
> symlink17-hdfs.txt, symlink18-common.txt, symlink19-common-delta.patch,
> symlink19-common.txt, symlink19-common.txt, symlink19-hdfs-delta.patch,
> symlink19-hdfs.txt, symlink20-common.patch, symlink20-hdfs.patch,
> symlink21-common.patch, symlink21-hdfs.patch, symlink22-common.patch,
> symlink22-hdfs.patch, symlink23-common.patch, symlink23-hdfs.patch,
> symLink4.patch, symLink5.patch, symLink6.patch, symLink8.patch, symLink9.patch
>
>
> HDFS should support symbolic links. A symbolic link is a special type of file
> that contains a reference to another file or directory in the form of an
> absolute or relative path and that affects pathname resolution. Programs
> which read or write to files named by a symbolic link will behave as if
> operating directly on the target file. However, archiving utilities can
> handle symbolic links specially and manipulate them directly.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.