[
https://issues.apache.org/jira/browse/HADOOP-11452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16824375#comment-16824375
]
Steve Loughran commented on HADOOP-11452:
-----------------------------------------
BTW, after making this public (and backporting all the way back to Hadoop
branch-2), I'd like to move to a builder version of this, somethuing like
{code}
CompleteableFuture renamed = fs.rename()
.withSource(Path or FileStatus)
.withDest(Path or FileStatus)
.withPermissions(perms)
.must(...)
.opt(...)
.build()
{code}
This makes it more obvious that async renames are a good thuing, and gives us
the ability to pass a fileStatus in as a source/dest rather than a path *so
avoiding the need to call getFileStatus again*. This is a good thing.
That would be something I wouldn't backport
> Make FileSystem.rename(path, path, options) public, specified, tested
> ---------------------------------------------------------------------
>
> Key: HADOOP-11452
> URL: https://issues.apache.org/jira/browse/HADOOP-11452
> Project: Hadoop Common
> Issue Type: Task
> Components: fs
> Affects Versions: 2.7.3
> Reporter: Yi Liu
> Assignee: Steve Loughran
> Priority: Major
> Attachments: HADOOP-11452-001.patch, HADOOP-11452-002.patch,
> HADOOP-14452-004.patch, HADOOP-14452-branch-2-003.patch
>
>
> Currently in {{FileSystem}}, {{rename}} with _Rename options_ is protected
> and with _deprecated_ annotation. And the default implementation is not
> atomic.
> So this method is not able to be used outside. On the other hand, HDFS has a
> good and atomic implementation. (Also an interesting thing in {{DFSClient}},
> the _deprecated_ annotations for these two methods are opposite).
> It makes sense to make public for {{rename}} with _Rename options_, since
> it's atomic for rename+overwrite, also it saves RPC calls if user desires
> rename+overwrite.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]