[
https://issues.apache.org/jira/browse/HDFS-245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eli Collins updated HDFS-245:
-----------------------------
Attachment: symlink41-hdfs.patch
Hey Sanjay,
The attached patch addresses your feedback and merges with trunk. I had to
resolve a bunch of diffs with and add new code for HDFS-946 which introduced
HdfsFileStatus so would be good to check out those changes in particular.
Details:
* Added missing throws of UnresolvedLinkException to DFSClient
* Removed UnresolvedLinkException from NameNode
* Fixed Lease#findPath per your suggestion, did the same to
getCompleteBlocksTotal since it should also not throw an UnresolvedLinkException
* Filed HADOOP-6585 and HDFS-995 to do the new FsStatus APIs and convert
existing code to the new interfaces.
* FSNameSystem#verifyParentDir now passes true for resolveLink, tests are in
the base class so will be in an upcoming common change.
* Replaced the numBlocks "> -2" check with "== -1"
* When through whitespace changes, they should just remove trailing whitespaces
now.
* Updated HDFS-995 with your suggestions for checking #isDirectory()
* I noticed INode#constructPath was using StringBuffer, changed it to use
StringBuilder
* FSNamesystem#metaSave no longers throws UnresolvedSymlinkException. It just
use java.io.File for the local file so symlinks should be handled transparently
by the local file system.
* Also, for those following along, we should not have to worry about
UnresolvedLinkExceptions in loadFSImage and friends because intermediate
symlinks are resolved when objects are created, so the paths that get persisted
are the fully resolved ones, ie creating /link/file will persist /dir/file so
when we load the image we will call addToParent(.."/dir/file"..). This should
be more clear when volume relative symlinks are resolved internally (HDFS-932).
The code asserts on these cases.
* getLinkTarget never throws an UnresolvedLinkException, it always resolves the
first symlink in the path and ignores the remainder, so I left the throws
clause as is
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: Eli Collins
> Attachments: 4044_20081030spi.java, design-doc-v4.txt,
> designdocv1.txt, designdocv2.txt, designdocv3.txt,
> HADOOP-4044-strawman.patch, symlink-0.20.0.patch, symlink-25-hdfs.patch,
> symlink-26-hdfs.patch, symlink-26-hdfs.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, symlink24-hdfs.patch,
> symlink27-hdfs.patch, symlink28-hdfs.patch, symlink29-hdfs.patch,
> symlink29-hdfs.patch, symlink30-hdfs.patch, symlink31-hdfs.patch,
> symlink33-hdfs.patch, symlink35-hdfs.patch, symlink36-hdfs.patch,
> symlink37-hdfs.patch, symlink38-hdfs.patch, symlink39-hdfs.patch,
> symLink4.patch, symlink40-hdfs.patch, symlink41-hdfs.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.