[ https://issues.apache.org/jira/browse/HDFS-8828?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14699664#comment-14699664 ]
Yongjun Zhang commented on HDFS-8828: ------------------------------------- Hi [~jingzhao], Thanks for the review and good comments! Some thoughts: Currently {{DistCpOptions}} is currently the only vehicle to pass info between different stages of distcp. To address your comment 1 & 2, we need to add something new to pass additional info (which is derived data, and can be hold by a new class) to pass between sync and copyListing stages. To do this, there are two choices: 1. Pass an object of this new class as a standalone parameter between stages, which require changing quite some method signatures, most of the places don't use this new parameter. 2. Put the object of this class as a member of DistCpOptions, so there is no need to change method signatures. We can create another new class {{DistCpDerivedInput}} to hold derived input, and put all derived data as members of {{DistCpDerivedInput}}. If we define DistCpOptions as only holding command line options, then then this choice is not perfect; however, if we define DistcpOptions as may-contain derived input too, then it's ok. Which choice you like better? or additional thoughts? Thanks. > Utilize Snapshot diff report to build copy list in distcp > --------------------------------------------------------- > > Key: HDFS-8828 > URL: https://issues.apache.org/jira/browse/HDFS-8828 > Project: Hadoop HDFS > Issue Type: Improvement > Components: distcp, snapshots > Reporter: Yufei Gu > Assignee: Yufei Gu > Attachments: HDFS-8828.001.patch, HDFS-8828.002.patch, > HDFS-8828.003.patch, HDFS-8828.004.patch, HDFS-8828.005.patch, > HDFS-8828.006.patch, HDFS-8828.007.patch > > > Some users reported huge time cost to build file copy list in distcp. (30 > hours for 1.6M files). We can leverage snapshot diff report to build file > copy list including files/dirs which are changes only between two snapshots > (or a snapshot and a normal dir). It speed up the process in two folds: 1. > less copy list building time. 2. less file copy MR jobs. > HDFS snapshot diff report provide information about file/directory creation, > deletion, rename and modification between two snapshots or a snapshot and a > normal directory. HDFS-7535 synchronize deletion and rename, then fallback to > the default distcp. So it still relies on default distcp to building complete > list of files under the source dir. This patch only puts creation and > modification files into the copy list based on snapshot diff report. We can > minimize the number of files to copy. -- This message was sent by Atlassian JIRA (v6.3.4#6332)