[
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: [email protected]
For additional commands, e-mail: [email protected]