[
https://issues.apache.org/jira/browse/HADOOP-1910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
dhruba borthakur updated HADOOP-1910:
-------------------------------------
Resolution: Fixed
Status: Resolved (was: Patch Available)
I just committed this. Thanks Raghu!
> Extra checks in DFS.create() are not necessary.
> -----------------------------------------------
>
> Key: HADOOP-1910
> URL: https://issues.apache.org/jira/browse/HADOOP-1910
> Project: Hadoop
> Issue Type: Bug
> Components: dfs
> Affects Versions: 0.14.1
> Reporter: Raghu Angadi
> Assignee: Raghu Angadi
> Priority: Minor
> Fix For: 0.15.0
>
> Attachments: HADOOP-1910.patch
>
>
> {{DistributedFileSystem.create(path)}} like this :
> {code}
> public FSDataOutputStream create(Path f, boolean overwrite,
> int bufferSize, short replication, long blockSize,
> Progressable progress) throws IOException {
> if (exists(f) && !overwrite) {
> throw new IOException("File already exists:"+f);
> }
> Path parent = f.getParent();
> if (parent != null && !exists(parent) && !mkdirs(parent)) {
> throw new IOException("Mkdirs failed to create " + parent);
> }
> return new FSDataOutputStream( dfs.create(getPathName(f), overwrite,
> replication, blockSize,
> progress, bufferSize, ticket));
> }
> {code}
> This has overhead of 2-3 RPCs to namenode for every create(). The first
> {{exists()}} is not required because {{overwrite}} flag is passed to
> Namenode. The second {{exists()}} and {{mkdirs()}} is not required since
> {{create()}} already does this.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.