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

Tsz Wo Nicholas Sze commented on HDFS-13021:
--------------------------------------------

The behavior is by design as it stated in TestBlockStoragePolicy.
{code:java}
// check the policy for /dir/.snapshot/s1/foo/f1. Note we always return
// the latest storage policy for a file/directory.
{code}
The problem is: what should HDFS do if the old and new storage policies are 
different?

> Incorrect storage policy of snapshot file was returned by getStoragePolicy 
> command
> ----------------------------------------------------------------------------------
>
>                 Key: HDFS-13021
>                 URL: https://issues.apache.org/jira/browse/HDFS-13021
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs, snapshots
>    Affects Versions: 3.1.0
>            Reporter: LiXin Ge
>            Assignee: LiXin Ge
>            Priority: Major
>         Attachments: HDFS-13021.001.patch
>
>
> Snapshots are supposed to be immutable and read only, so the file status 
> which in a snapshot path shouldn't follow the original file's change.
> The StoragePolicy in snapshot situation acts like a bug now.
> -----------
> Reproduction:Operation on snapshottable dir {{/storagePolicy}}
> *before make snapshot:*
> {code:java}
>  [bin]# hdfs storagepolicies -setStoragePolicy -path /storagePolicy -policy 
> PROVIDED
>  Set storage policy PROVIDED on /storagePolicy
>  [bin]# hadoop fs -put /home/file /storagePolicy/file_PROVIDED
>  [bin]# hdfs storagepolicies -getStoragePolicy -path 
> /storagePolicy/file_PROVIDED
>  The storage policy of /storagePolicy/file_PROVIDED:
>  BlockStoragePolicy{HOT:7, storageTypes=[DISK], creationFallbacks=[], 
> replicationFallbacks=[ARCHIVE]}
> {code}
> *make snapshot and check:*
> {code:java}
> [bin]# hdfs dfs -createSnapshot /storagePolicy s3_PROVIDED
> Created snapshot /storagePolicy/.snapshot/s3_PROVIDED
> [bin]# hdfs storagepolicies -getStoragePolicy -path 
> /storagePolicy/.snapshot/s3_PROVIDED/file_PROVIDED
> The storage policy of /storagePolicy/.snapshot/s3_PROVIDED/file_PROVIDED:
> BlockStoragePolicy{PROVIDED:1, storageTypes=[PROVIDED, DISK], 
> creationFallbacks=[PROVIDED, DISK], replicationFallbacks=[PROVIDED, DISK]} 
> {code}
> *change the StroagePolicy and check again:*
> {code:java}
> [bin]# hdfs storagepolicies -setStoragePolicy -path /storagePolicy -policy HOT
> Set storage policy HOT on /storagePolicy
> [bin]# hdfs storagepolicies -getStoragePolicy -path 
> /storagePolicy/.snapshot/s3_PROVIDED/file_PROVIDED
> The storage policy of /storagePolicy/.snapshot/s3_PROVIDED/file_PROVIDED:
> BlockStoragePolicy{HOT:7, storageTypes=[DISK], creationFallbacks=[], 
> replicationFallbacks=[ARCHIVE]}   ---- It shouldn't be HOT
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to