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

Jinglun commented on HDFS-14814:
--------------------------------

Thank [~elgoiri] for your fast reply ! Agree with your comments, especially the 
first one about setQuota(), it's very reasonable !  Only one question:
{quote}I think that in the loop in getGlobalQuota, you could just do the ifs, 
and not do the if with the break, you will get the same number of comparissons.
{quote}
Do you mean the code below ?
{code:java}
Entry<String, RouterQuotaUsage> entry = pts.lastEntry();
while (entry != null) {
  String ppath = entry.getKey();
  QuotaUsage quota = entry.getValue();
  if (nQuota == HdfsConstants.QUOTA_RESET) {
    nQuota = quota.getQuota();
  }
  if (sQuota == HdfsConstants.QUOTA_RESET) {
    sQuota = quota.getSpaceQuota();
  }
  entry = pts.lowerEntry(ppath);
}{code}
In my understood, If I don't break I'll search all the entries even I already 
got the values for nQuota and sQuota. So I want to break to save some 
pts.lowerEntry(ppath). Correct me if i'm wrong. Thanks !

> RBF: RouterQuotaUpdateService supports inherited rule.
> ------------------------------------------------------
>
>                 Key: HDFS-14814
>                 URL: https://issues.apache.org/jira/browse/HDFS-14814
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Jinglun
>            Assignee: Jinglun
>            Priority: Major
>         Attachments: HDFS-14814.001.patch, HDFS-14814.002.patch, 
> HDFS-14814.003.patch, HDFS-14814.004.patch, HDFS-14814.005.patch, 
> HDFS-14814.006.patch, HDFS-14814.007.patch, HDFS-14814.008.patch, 
> HDFS-14814.009.patch, HDFS-14814.010.patch
>
>
> I want to add a rule *'The quota should be set the same as the nearest 
> parent'* to Global Quota. Supposing we have the mount table below.
> M1: /dir-a                            ns0->/dir-a     \{nquota=10,squota=20}
> M2: /dir-a/dir-b                 ns1->/dir-b     \{nquota=-1,squota=30}
> M3: /dir-a/dir-b/dir-c       ns2->/dir-c     \{nquota=-1,squota=-1}
> M4: /dir-d                           ns3->/dir-d     \{nquota=-1,squota=-1}
>  
> The quota for the remote locations on the namespaces should be:
>  ns0->/dir-a     \{nquota=10,squota=20}
>  ns1->/dir-b     \{nquota=10,squota=30}
>  ns2->/dir-c      \{nquota=10,squota=30}
>  ns3->/dir-d     \{nquota=-1,squota=-1}
>  
> The quota of the remote location is set the same as the corresponding 
> MountTable, and if there is no quota of the MountTable then the quota is set 
> to the nearest parent MountTable with quota.
>  
> It's easy to implement it. In RouterQuotaUpdateService each time we compute 
> the currentQuotaUsage, we can get the quota info for each MountTable. We can 
> do a
>  check and fix all the MountTable which's quota doesn't match the rule above.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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