[ 
https://issues.apache.org/jira/browse/HADOOP-11452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16743953#comment-16743953
 ] 

Vinayakumar B commented on HADOOP-11452:
----------------------------------------

Before making this API public..

I want to just highlight the fact that, *both API's behavior is different* in 
HDFS NameNode side in case of destination is a directory and already exists.

{{FileSystem#rename(src,dest)}} puts the src inside the destination directory. 
Works similar to linux commands. Used by all Shell Commands. So All is well.
{{FileSystem#rename(src,dest, options)}} does not provide the option to put the 
src inside destination directory. if the destination is a directory. With 
OVERWRITE option, source and destination should be of same type. So technically 
if we want to move a file/dir inside destincation directory, full destination 
path needs to be constructed by the client. (Currently not expected since this 
API is not public.)

> 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]

Reply via email to