[ https://issues.apache.org/jira/browse/HDFS-10533?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mingliang Liu updated HDFS-10533: --------------------------------- Attachment: HDFS-10533.000.patch The v0 patch briefly explains our idea. Specially, the immutable {{DistCpOptions}} is user interface for input options. We encapsulate (and hide) it in a {{DistCpContext}} class along with mutable variables like {{sourcePaths}}, {{targetPathExists}} and {{preserveRawXattrs}}. There are open questions for discussion though: # Some of the distcp options were badly named, e.g. {{syncFolder <--> update}}, we can name them consistently here # Option {{blocking}} is reversely set and used, which is confusing # {{-delete}} and {{-diff}} are mutually exclusive. For backward compatibility, we ignored the {{-delete}} option (see [HDFS-10397] and [HDFS-10556] for more discussion), instead of throwing an IllegalArgumentException. I suggest we throw error as a long-term and REAL fix. > Make DistCpOptions class immutable > ---------------------------------- > > Key: HDFS-10533 > URL: https://issues.apache.org/jira/browse/HDFS-10533 > Project: Hadoop HDFS > Issue Type: Improvement > Components: distcp > Reporter: Mingliang Liu > Assignee: Mingliang Liu > Attachments: HDFS-10533.000.patch > > > Currently the {{DistCpOptions}} class encapsulates all DistCp options, which > may be set from command-line (via the {{OptionsParser}}) or may be set > manually (eg construct an instance and call setters). As there are multiple > option fields and more (e.g. [HDFS-9868], [HDFS-10314]) to add, validating > them can be cumbersome. Ideally, the {{DistCpOptions}} object should be > immutable. The benefits are: > # {{DistCpOptions}} is simple and easier to use and share, plus it scales well > # validation is automatic, e.g. manually constructed {{DistCpOptions}} gets > validated before usage > # validation error message is well-defined which does not depend on the order > of setters > This jira is to track the effort of making the {{DistCpOptions}} immutable by > using a Builder pattern for creation. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org