You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Raghu Angadi (JIRA)" <ji...@apache.org> on 2007/09/17 23:57:43 UTC
[jira] Updated: (HADOOP-1910) Extra checks in DFS.create() are not
necessary.
[ https://issues.apache.org/jira/browse/HADOOP-1910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Raghu Angadi updated HADOOP-1910:
---------------------------------
Attachment: HADOOP-1910.patch
Suggested simple patch.
> 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
> Reporter: Raghu Angadi
> Assignee: Raghu Angadi
> Priority: Minor
> 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.