[ https://issues.apache.org/jira/browse/HADOOP-1910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12528862 ]
dhruba borthakur commented on HADOOP-1910: ------------------------------------------ +1. Code looks good. > 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.