[ 
https://issues.apache.org/jira/browse/HDFS-4675?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tsz Wo (Nicholas), SZE updated HDFS-4675:
-----------------------------------------

    Resolution: Fixed
        Status: Resolved  (was: Patch Available)
    
> Fix rename across snapshottable directories
> -------------------------------------------
>
>                 Key: HDFS-4675
>                 URL: https://issues.apache.org/jira/browse/HDFS-4675
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: namenode
>            Reporter: Jing Zhao
>            Assignee: Jing Zhao
>             Fix For: Snapshot (HDFS-2802)
>
>         Attachments: HDFS-4675.000.patch, HDFS-4675.001.patch, 
> HDFS-4675.002.patch, HDFS-4675.002.patch, HDFS-4675.003.patch, 
> HDFS-4675.004.patch, HDFS-4675.005.patch
>
>
> For rename across snapshottable directories, suppose there are two 
> snapshottable directories: /user1 and /user2 and we have the following steps:
> 1. Take snapshot s1 on /user1 at time t1.
> 2. Take snapshot s2 on /user2 at time t2.
> 3. Take snapshot s3 on /user1 at time t3.
> 4. Rename /user2/foo/ (an INodeDirectoryWithSnapshot instance) to /user1/foo/.
> After the rename we update the subtree of /user1/foo/ again (e.g., delete 
> /user1/foo/bar), we need to decide where to record the diff. The problem is 
> that the current implementation will identify s3 as the latest snapshot, thus 
> recording the snapshot copy of bar to s3. However, the parent of bar, 
> /user1/foo, is still in the created list of s3. Thus here we should record 
> the snapshot copy of bar to s2.
> If we further take snapshot s4 on /user1, and make some further change under 
> /user1/foo, these changes will be recorded in s4. Then if we delete the 
> snapshot s4, similar with above, we should merge the change to s2, not s3.
> Thus in general, we may need to record the latest snapshots of both the 
> src/dst subtree in the renamed inode and update the current 
> INodeDirectory#getExistingINodeInPath accordingly.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to