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

Ayush Saxena commented on HDFS-14814:
-------------------------------------

Thanx [~LiJinglun] for confirming.
Started checking the code couple of comments :
* For method  {{setQuota}} there is already similar method with same flow just 
without location. may be you can refactor it to add locations and check if 
location is not null then calculate location based on the logic present else 
use the loction passed?
* For {{testGetGlobalQuota}} you may use LambdaTestUtils.Intercept()
* The tests in {{TestRouterQuota}} seems completely same apart from the last 
assertions. May be you can either merge it or refactor the common part and use 
in both.
* {{routerContext.getRouter().getRpcServer().getQuotaModule()}} seems to be 
used multiple time, may be you can get in a single variable.
* For LOG you may use sl4j
[~elgoiri] can you give a look too.

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

Reply via email to