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

He Xiaoqiao commented on HDFS-14633:
------------------------------------

Thanks [~xyao] for your quick response and helps. verify failed unit test at 
local and result is OK for me. Thanks again.

> The StorageType quota and consume in QuotaFeature is not handled for rename
> ---------------------------------------------------------------------------
>
>                 Key: HDFS-14633
>                 URL: https://issues.apache.org/jira/browse/HDFS-14633
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Jinglun
>            Assignee: Jinglun
>            Priority: Major
>             Fix For: 2.10.0, 3.0.4, 3.3.0, 2.8.6, 3.2.1, 2.9.3, 3.1.3
>
>         Attachments: HDFS-14633-testcases-explanation, HDFS-14633.002.patch, 
> HDFS-14633.003.patch, HDFS-14633.004.patch, HDFS-14633.005.patch, 
> HDFS-14633.006.patch, HDFS-14633.007.patch
>
>
> The NameNode manages the global state of the cluster. We should always take 
> NameNode's records as the sole criterion because no matter what inconsistent 
> is the NameNode should finally make everything right based on it's records. 
> Let's call it rule NSC(NameNode is the Sole Criterion). That means when we do 
> all quota related rpcs, we do the quota check according to NameNode's records 
> regardless of any inconsistent situation, such as the replicas doesn't match 
> the storage policy of the file, or the replicas count doesn't match the 
> file's set replica.
>  The work SPS deals with the wrongly palced replicas. There is a thought 
> about putting off the consume update of the DirectoryQuota until all replicas 
> are re-placed by SPS. I can't agree that because if we do so we will abandon 
> letting the NameNode's records to be the sole criterion. The block 
> replication is a good example of the rule NSC. When we count the consume of a 
> file(CONTIGUOUS), we multiply the replication factor with the file's length, 
> no matter the blocks are under replicated or excessed. We should do the same 
> thing for the storage type quota.
>  Another concern is the change will let setStoragePolicy throw 
> QuotaByStorageTypeExceededException which it doesn't before. I don't think 
> it's a big problem since the setStoragePolicy already throws IOException. Or 
> we can wrap the QuotaByStorageTypeExceededException in an IOException, but I 
> won't recommend that because it's ugly.
>  To make storage type consume follow the rule NSC, we need change 
> rename(moving a file with storage policy inherited from it's parent) and 
> setStoragePolicy. 



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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