Chen He created HADOOP-12046: -------------------------------- Summary: Avoid creating "._COPYING_" temporary file when copying file to Swift file system Key: HADOOP-12046 URL: https://issues.apache.org/jira/browse/HADOOP-12046 Project: Hadoop Common Issue Type: New Feature Affects Versions: 2.7.0 Reporter: Chen He Assignee: Chen He
When copy file from HDFS or local to another file system implementation, in CommandWithDestination.java, it creates a temp file by adding suffix "._COPYING_". Once file is successfully copied, it will remove the suffix by rename(). try { PathData tempTarget = target.suffix("._COPYING_"); targetFs.setWriteChecksum(writeChecksum); targetFs.writeStreamToFile(in, tempTarget, lazyPersist); targetFs.rename(tempTarget, target); } finally { targetFs.close(); // last ditch effort to ensure temp file is removed } It is not costly in HDFS. However, if copy to Swift file system, the rename process is to create a new file. It is not efficient if users copy a lot of files to swift file system. I did some tests, for a 1G file copying to swift, it will take 10% more time. We should only do the copy one time for Swift file system. Changes should be limited to the Swift driver level. -- This message was sent by Atlassian JIRA (v6.3.4#6332)