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 "Hadoop QA (JIRA)" <ji...@apache.org> on 2009/05/08 22:08:45 UTC
[jira] Commented: (HADOOP-5438) Merge FileSystem.create and
FileSystem.append
[ https://issues.apache.org/jira/browse/HADOOP-5438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12707505#action_12707505 ]
Hadoop QA commented on HADOOP-5438:
-----------------------------------
-1 overall. Here are the results of testing the latest attachment
http://issues.apache.org/jira/secure/attachment/12407209/Hadoop-5438-2009-05-5.patch
against trunk revision 772960.
+1 @author. The patch does not contain any @author tags.
+1 tests included. The patch appears to include 6 new or modified tests.
-1 patch. The patch command could not apply the patch.
Console output: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch-vesta.apache.org/301/console
This message is automatically generated.
> Merge FileSystem.create and FileSystem.append
> ---------------------------------------------
>
> Key: HADOOP-5438
> URL: https://issues.apache.org/jira/browse/HADOOP-5438
> Project: Hadoop Core
> Issue Type: Improvement
> Components: fs
> Reporter: He Yongqiang
> Assignee: He Yongqiang
> Attachments: Hadoop-5438(2009-04-06).patch, Hadoop-5438-2009-03-30.patch, Hadoop-5438-2009-03-31-2.patch, Hadoop-5438-2009-03-31.patch, Hadoop-5438-2009-05-5.patch
>
>
> Currently, when a user wants to modify a file, the user first calls exists() to know if this file is already there. And then uses create() or append() according to whether the file exists or not.
> the code looks like:
> {code}
> FSDataOutputStream out_1 = null;
> if (fs.exists(path_1))
> out_1 = fs.append(path_1);
> else
> out_1 = fs.create(path_1);
> {code}
> . On the performace side,It involes two RPCs. On the easy-of-use side, it is not very convient in contrast to the traditional open interface.
> It will more complicate if there is a overwrite parameter specified. I donot know whether there is a bug about 'overwrite' in 0.19, some times it takes a long time for overwrite creates to reture. So i make the write file code with overwrite param works like:
> {code}
> boolean exists = fs.exists(name);
> if (overwrite) {
> if (exists)
> fs.delete(name, true);
> this.out = fs.create(name, overwrite, bufferSize, replication,
> blockSize, progress);
> this.currentRowID = 0;
> } else {
> if (!exists)
> this.out = fs.create(name, overwrite, bufferSize,
> replication, blockSize, progress);
> else
> this.out = fs.append(name, bufferSize, progress);
> {code}
> Some code statements there are really redundant and not needed, especialy with the delete(). But without deleting first, the overwrite takes a long time to reture.
> BTW, i will create another issue about the overwrite problem. If it is not a bug at all or a duplicate, someone please close it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.