[
https://issues.apache.org/jira/browse/HADOOP-4044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12649135#action_12649135
]
Konstantin Shvachko commented on HADOOP-4044:
---------------------------------------------
# We should have some *performance testing*. There is a lot of
wrapping/unwrapping going on. So we need to make sure that old operations like
{{getBlockLocations(), create(), list()}} etc. on the {{FileSystem}} level
perform the same as the old code.
# > I suggest we use Dhruba's implementation and do the improvement later.
I don't understand what is the problem here.
Nichlas proposes to have 2 classes {{FsResult<T>}} and {{FsResultWritable<T>}}
which extends {{FsResult<T>}}.
This is exactly what should be done here. {{ClientProtocol}} methods should
return {{FsResultWritable<T>}}, while {{DFSClient}} and all other
{{\*FileSystem}} classes should return {{FsResult<T>}}. This is because
Writable is needed only in the RPC level, after that Writable is not required.
E.g.
{code}
interface ClientProtocol {
FsResultWritable<LocatedBlocks> setReplication(...);
FsResultWritable<NullWritable> create(...);
}
class DFSClient {
FsResult<LocatedBlocks> setReplication(...) {
return namenode.setReplication(...); // can do this because
FsResultWritable is a subclass of FsResult
}
FsResult<OutputStream> create(...) {
return new FsResult<OutputStream>(new DFSOutputStream(...));
}
}
{code}
# I did not review the code. Just looked in few places.
- Looks like FsResult constructors do not need to throw any exceptions.
- {{DFSClient.getHints()}} is deprecated. It is a good time to remove it.
> Create symbolic links in HDFS
> -----------------------------
>
> Key: HADOOP-4044
> URL: https://issues.apache.org/jira/browse/HADOOP-4044
> Project: Hadoop Core
> Issue Type: New Feature
> Components: dfs
> Reporter: dhruba borthakur
> Assignee: dhruba borthakur
> Fix For: 0.20.0
>
> Attachments: 4044_20081030spi.java, HADOOP-4044-strawman.patch,
> symLink1.patch, symLink1.patch, symLink11.patch, symLink12.patch,
> symLink13.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.