[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16946640#comment-16946640 ] Hudson commented on HDFS-14814: --- SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #17501 (See [https://builds.apache.org/job/Hadoop-trunk-Commit/17501/]) HDFS-14814. RBF: RouterQuotaUpdateService supports inherited rule. (ayushsaxena: rev 761594549ec0c6bab50a28a7eb6c741aec7239d7) * (edit) hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/Quota.java * (edit) hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestDisableRouterQuota.java * (edit) hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterQuotaUpdateService.java * (edit) hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterQuota.java * (edit) hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterQuotaManager.java > 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 > Fix For: 3.3.0 > > 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, HDFS-14814.011.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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16946622#comment-16946622 ] Ayush Saxena commented on HDFS-14814: - Committed to trunk. Thanx [~LiJinglun] for the contribution and [~elgoiri] for the review!!! > 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, HDFS-14814.011.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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16946496#comment-16946496 ] Ayush Saxena commented on HDFS-14814: - Thanx [~LiJinglun] v011 LGTM +1 > 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, HDFS-14814.011.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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16946330#comment-16946330 ] Íñigo Goiri commented on HDFS-14814: LGTM. +1 on [^HDFS-14814.011.patch]. > 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, HDFS-14814.011.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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945297#comment-16945297 ] Hadoop QA commented on HDFS-14814: -- | (/) *{color:green}+1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 46s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 2 new or modified test files. {color} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 21m 35s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 38s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 24s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 38s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 13m 22s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 59s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 55s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 30s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 26s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 26s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 17s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 30s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 12m 14s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 58s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 46s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 6m 41s{color} | {color:green} hadoop-hdfs-rbf in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 32s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 63m 8s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=19.03.2 Server=19.03.2 Image:yetus/hadoop:1dde3efb91e | | JIRA Issue | HDFS-14814 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12982304/HDFS-14814.011.patch | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux c3ad18030706 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 55c5436 | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_222 | | findbugs | v3.1.0-RC1 | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/28018/testReport/ | | Max. process+thread count | 2730 (vs. ulimit of 5500) | | modules | C: hadoop-hdfs-project/hadoop-hdfs-rbf U: hadoop-hdfs-project/hadoop-hdfs-rbf | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/28018/console | | Powered by | Apache Yetus 0.8.0 http://yetus.apache.org | This message was automatically generated. > RBF: RouterQuotaUpdateService supports inherited rule. > -- > > Key: HDFS-14814 > URL:
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16945284#comment-16945284 ] Jinglun commented on HDFS-14814: Thanks [~elgoiri] your nice comments ! Sorry for my late reply, I was on a vacation last days. {quote}Actually, is there a chance we can get into an infinite loop? Currently I think we just skip checking right away. Are we covering all the corner cases in the unit test? {quote} I think the loop won't get into infinite because TreeMap.lowerEntry() will return null if there isn't any entry with lower key. I'll add a new test case to test the infinite case. And I think the break in a while loop is not good for reading because there are 2 positions to quit the loop. I'll move the break into while's condition to make it more readable. Other suggestions like the setQuota, aux methods etc are all included in v11. Upload v11 , pending jenkins. > 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, HDFS-14814.011.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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16942152#comment-16942152 ] Íñigo Goiri commented on HDFS-14814: That makes sense. Actually, is there a chance we can get into an infinite loop? Currently I think we just skip checking right away. Are we covering all the corner cases in the unit test? BTW, we could move the {{QuotaUsage quota = entry.getValue();}} after the break if. > 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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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 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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16941301#comment-16941301 ] Íñigo Goiri commented on HDFS-14814: Regarding {{setQuota()}}, keep in mind we should keep the signature from ClientProtocol: {code} @Idempotent void setQuota(String path, long namespaceQuota, long storagespaceQuota, StorageType type) throws IOException; {code} We cannot set Override because this is not a full impl. So let's keep the old method and add the extra one just for RouterQuotaUpdateService. We could potentially also make it package protected instead of public. (Same for all the aux methods.) I think that in thel 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. In addition, I don't think getGlobalQuota() needs the check for operation as it's not supposed to be invoked through RPC directly. As I mentioned before, let's make all these aux methods package private to distinguish them from the public API ones. Maybe even adding some annotation? For the log in RouterQuotaUpdateService#fixGlobalQuota we should fully leverage logger. {code} 162 LOG.info("[Fix Quota] src={} dst={} oldQuota={}/{} newQuota={}/{}", 163 location.getSrc(), location, 164 remoteQuota.getQuota(), remoteQuota.getSpaceQuota(), 165 gQuota.getQuota(), gQuota.getSpaceQuota()); {code} > 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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16940618#comment-16940618 ] Hadoop QA commented on HDFS-14814: -- | (/) *{color:green}+1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 1m 5s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 3 new or modified test files. {color} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 20m 14s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 30s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 20s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 33s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 13m 9s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 55s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 46s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 28s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 27s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 27s{color} | {color:green} the patch passed {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 15s{color} | {color:orange} hadoop-hdfs-project/hadoop-hdfs-rbf: The patch generated 2 new + 5 unchanged - 0 fixed = 7 total (was 5) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 27s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 13m 27s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 2s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 42s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 23m 41s{color} | {color:green} hadoop-hdfs-rbf in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 28s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 79m 22s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=18.09.7 Server=18.09.7 Image:yetus/hadoop:efed4450bf1 | | JIRA Issue | HDFS-14814 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12981737/HDFS-14814.010.patch | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux c4b45f252042 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 760b523 | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_222 | | findbugs | v3.1.0-RC1 | | checkstyle | https://builds.apache.org/job/PreCommit-HDFS-Build/27985/artifact/out/diff-checkstyle-hadoop-hdfs-project_hadoop-hdfs-rbf.txt | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/27985/testReport/ | | Max. process+thread count | 1585 (vs. ulimit of 5500) | | modules | C: hadoop-hdfs-project/hadoop-hdfs-rbf U: hadoop-hdfs-project/hadoop-hdfs-rbf | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/27985/console | | Powered by | Apache Yetus 0.8.0
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16940608#comment-16940608 ] Hadoop QA commented on HDFS-14814: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 44s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 3 new or modified test files. {color} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 19m 2s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 35s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 21s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 44s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 14m 16s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 1s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 50s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:red}-1{color} | {color:red} mvninstall {color} | {color:red} 0m 18s{color} | {color:red} hadoop-hdfs-rbf in the patch failed. {color} | | {color:red}-1{color} | {color:red} compile {color} | {color:red} 0m 19s{color} | {color:red} hadoop-hdfs-rbf in the patch failed. {color} | | {color:red}-1{color} | {color:red} javac {color} | {color:red} 0m 19s{color} | {color:red} hadoop-hdfs-rbf in the patch failed. {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 14s{color} | {color:orange} hadoop-hdfs-project/hadoop-hdfs-rbf: The patch generated 2 new + 5 unchanged - 0 fixed = 7 total (was 5) {color} | | {color:red}-1{color} | {color:red} mvnsite {color} | {color:red} 0m 20s{color} | {color:red} hadoop-hdfs-rbf in the patch failed. {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 13m 25s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 0m 22s{color} | {color:red} hadoop-hdfs-rbf in the patch failed. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 43s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 0m 21s{color} | {color:red} hadoop-hdfs-rbf in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 28s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 54m 43s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=18.09.7 Server=18.09.7 Image:yetus/hadoop:efed4450bf1 | | JIRA Issue | HDFS-14814 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12981736/HDFS-14814.010.patch | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux 4ddb4beddf90 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 760b523 | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_222 | | findbugs | v3.1.0-RC1 | | mvninstall | https://builds.apache.org/job/PreCommit-HDFS-Build/27984/artifact/out/patch-mvninstall-hadoop-hdfs-project_hadoop-hdfs-rbf.txt | | compile | https://builds.apache.org/job/PreCommit-HDFS-Build/27984/artifact/out/patch-compile-hadoop-hdfs-project_hadoop-hdfs-rbf.txt | | javac | https://builds.apache.org/job/PreCommit-HDFS-Build/27984/artifact/out/patch-compile-hadoop-hdfs-project_hadoop-hdfs-rbf.txt | | checkstyle |
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16940593#comment-16940593 ] Jinglun commented on HDFS-14814: {quote}If you want to return a List of Entry, just create a new Map. {quote} Good idea ! I'll return a TreeMap instead. Upload v10 and pend jenkins. > 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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16939814#comment-16939814 ] Íñigo Goiri commented on HDFS-14814: If you want to return a List of Entry, just create a new Map. > 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 > > > 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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16939337#comment-16939337 ] Hadoop QA commented on HDFS-14814: -- | (/) *{color:green}+1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 1m 15s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 3 new or modified test files. {color} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 23m 46s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 40s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 29s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 39s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 15m 28s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 11s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 2s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 42s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 33s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 33s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 21s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 33s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 15m 32s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 15s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 57s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 27m 0s{color} | {color:green} hadoop-hdfs-rbf in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 28s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 93m 36s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=18.09.7 Server=18.09.7 Image:yetus/hadoop:efed4450bf1 | | JIRA Issue | HDFS-14814 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12981510/HDFS-14814.009.patch | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux 52158e3c631f 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 8a9ede5 | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_222 | | findbugs | v3.1.0-RC1 | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/27974/testReport/ | | Max. process+thread count | 1586 (vs. ulimit of 5500) | | modules | C: hadoop-hdfs-project/hadoop-hdfs-rbf U: hadoop-hdfs-project/hadoop-hdfs-rbf | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/27974/console | | Powered by | Apache Yetus 0.8.0 http://yetus.apache.org | This message was automatically generated. > RBF: RouterQuotaUpdateService supports inherited rule. > -- > > Key: HDFS-14814 > URL:
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16939076#comment-16939076 ] Jinglun commented on HDFS-14814: Thanks [~ayushtkn] [~elgoiri] your nice comments and suggestions ! {quote}I didn't understand this comment. {quote} My bad, I missed it when I did refactor. {quote}RouterQuotaManager#getParentsContainingQuota() is using Map#Entry while when we use that, we only use the values and not the Key. Returning a list of entries looks weird. {quote} I not really like removing the key part. Because the key let me know which path the RouterQuotaUsage belongs to. Since it is a public method, I think it can make the method more complete. Another way is to create a new Class with 2 members: path and RouterQuotaUsage. I'm ok with either Entry or a Wrapper class for path & RouterQuotaUsage. What do you think ? Upload v09 and pending jenkins. > 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 > > > 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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16938836#comment-16938836 ] Íñigo Goiri commented on HDFS-14814: Nothing major, I would make Quota#143 into two lines. RouterQuotaManager#getParentsContainingQuota() is using Map#Entry while when we use that, we only use the values and not the Key. Returning a list of entries looks weird. > 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 > > > 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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16938661#comment-16938661 ] Ayush Saxena commented on HDFS-14814: - Thanx [~LiJinglun] for the patch. Some minor comments : {code:java} +Map usageMap = +this.rpcServer.getQuotaModule().getEachQuotaUsage(src); +currentQuotaUsage = +this.rpcServer.getQuotaModule().aggregateQuota(usageMap); {code} You can extract {{this.rpcServer.getQuotaModule()}} and use at both places. {code:java} + LOG.info("[Fix Quota] src={} dst={} oldQuota={} newQuota={}", + new Object[] {location.getSrc(), location, + remoteQuota.getQuota() + "/" + remoteQuota.getSpaceQuota(), + gQuota.getQuota() + "/" + gQuota.getSpaceQuota()}); {code} Why you need to do {{new Object[]}} ? I guess it can take directly values seprated by coma. {code:java} + @Test + public void testFixGlobalQuota() throws Exception { +// Wait RouterUpdateQuotaService for fixing the remote quota. {code} I didn't understand this comment. Other than this, seems fair enough. [~elgoiri] you would like to add something? > 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 > > > 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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16938530#comment-16938530 ] Hadoop QA commented on HDFS-14814: -- | (/) *{color:green}+1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 43s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 3 new or modified test files. {color} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 18m 17s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 32s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 24s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 39s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 12m 19s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 4s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 47s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 30s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 28s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 28s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 17s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 29s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 14m 46s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 13s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 54s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 24m 38s{color} | {color:green} hadoop-hdfs-rbf in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 30s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 79m 21s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=19.03.1 Server=19.03.1 Image:yetus/hadoop:efed4450bf1 | | JIRA Issue | HDFS-14814 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12981430/HDFS-14814.008.patch | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux 9e0b5d291987 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 7b6219a | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_222 | | findbugs | v3.1.0-RC1 | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/27970/testReport/ | | Max. process+thread count | 1611 (vs. ulimit of 5500) | | modules | C: hadoop-hdfs-project/hadoop-hdfs-rbf U: hadoop-hdfs-project/hadoop-hdfs-rbf | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/27970/console | | Powered by | Apache Yetus 0.8.0 http://yetus.apache.org | This message was automatically generated. > RBF: RouterQuotaUpdateService supports inherited rule. > -- > > Key: HDFS-14814 > URL:
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16938487#comment-16938487 ] Jinglun commented on HDFS-14814: A test case is broke by v07. Fix both the test case and checkstyle in v08. > 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 > > > 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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16938391#comment-16938391 ] Hadoop QA commented on HDFS-14814: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 42s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 3 new or modified test files. {color} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 17m 44s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 35s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 26s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 35s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 13m 36s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 57s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 53s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 29s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 25s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 25s{color} | {color:green} the patch passed {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 17s{color} | {color:orange} hadoop-hdfs-project/hadoop-hdfs-rbf: The patch generated 3 new + 5 unchanged - 0 fixed = 8 total (was 5) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 29s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 13m 23s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 9s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 50s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 22m 40s{color} | {color:red} hadoop-hdfs-rbf in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 30s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 76m 42s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.hdfs.server.federation.router.TestRouterAdminCLI | \\ \\ || Subsystem || Report/Notes || | Docker | Client=19.03.1 Server=19.03.1 Image:yetus/hadoop:efed4450bf1 | | JIRA Issue | HDFS-14814 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12981409/HDFS-14814.007.patch | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux 287dfed65186 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 587a8ee | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_222 | | findbugs | v3.1.0-RC1 | | checkstyle | https://builds.apache.org/job/PreCommit-HDFS-Build/27968/artifact/out/diff-checkstyle-hadoop-hdfs-project_hadoop-hdfs-rbf.txt | | unit | https://builds.apache.org/job/PreCommit-HDFS-Build/27968/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs-rbf.txt | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/27968/testReport/ | | Max. process+thread count | 1613 (vs. ulimit of
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16938293#comment-16938293 ] Hadoop QA commented on HDFS-14814: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 0s{color} | {color:blue} Docker mode activated. {color} | | {color:red}-1{color} | {color:red} patch {color} | {color:red} 0m 9s{color} | {color:red} HDFS-14814 does not apply to trunk. Rebase required? Wrong Branch? See https://wiki.apache.org/hadoop/HowToContribute for help. {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Issue | HDFS-14814 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12981401/HDFS-14814.006.patch | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/27967/console | | Powered by | Apache Yetus 0.8.0 http://yetus.apache.org | This message was automatically generated. > 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 > > > 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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16938292#comment-16938292 ] Jinglun commented on HDFS-14814: Thanks [~ayushtkn] for your nice comments. Agree with your suggestions ! Upload v06 and pend jenkins. > 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 > > > 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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16936993#comment-16936993 ] Ayush Saxena commented on HDFS-14814: - Can we not just have {{setQuota(List locations, String path, + long namespaceQuota, long storagespaceQuota, StorageType type)}} this method and handle null here, instead having multiple setQuota methods? if no specific reason, we should have only one setQuota and call this method passing null as what we need not to pass and handle that in the same method. Instead repeating this : {code:java} prepareGlobalQuotaTestMountTable(nsQuota, ssQuota); + +// Expect three remote locations' global quota: +// ns0---/dir-1 --> [nsQuota, ssQuota] +// ns0---/dir-2 --> [nsQuota, ssQuota * 2] +// ns0---/dir-3 --> [nsQuota, ssQuota * 2] {code} You can just put in javadoc for this in {{prepareGlobalQuotaTestMountTable}}. That should be well enough to indicate > 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 > > > 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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16936467#comment-16936467 ] Hadoop QA commented on HDFS-14814: -- | (/) *{color:green}+1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 37s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 2 new or modified test files. {color} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 16m 33s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 32s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 24s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 35s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 12m 27s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 58s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 54s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 28s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 25s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 25s{color} | {color:green} the patch passed {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 18s{color} | {color:orange} hadoop-hdfs-project/hadoop-hdfs-rbf: The patch generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 29s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 12m 20s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 2s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 49s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 23m 8s{color} | {color:green} hadoop-hdfs-rbf in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 31s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 73m 31s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=19.03.1 Server=19.03.1 Image:yetus/hadoop:efed4450bf1 | | JIRA Issue | HDFS-14814 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12981131/HDFS-14814.005.patch | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux 067d0d2cf3ff 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | trunk / e8e7d7b | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_222 | | findbugs | v3.1.0-RC1 | | checkstyle | https://builds.apache.org/job/PreCommit-HDFS-Build/27950/artifact/out/diff-checkstyle-hadoop-hdfs-project_hadoop-hdfs-rbf.txt | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/27950/testReport/ | | Max. process+thread count | 1611 (vs. ulimit of 5500) | | modules | C: hadoop-hdfs-project/hadoop-hdfs-rbf U: hadoop-hdfs-project/hadoop-hdfs-rbf | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/27950/console | | Powered by | Apache Yetus 0.8.0
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16936410#comment-16936410 ] Jinglun commented on HDFS-14814: Thanks [~ayushtkn] [~elgoiri] for your nice comments ! Follow your suggestions in v05. Pending jenkins. > 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 > > > 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
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16936022#comment-16936022 ] Íñigo Goiri commented on HDFS-14814: Agreed with [~ayushtkn]'s comments. A couple more minor comments: * Extract entry.getKey() and entry.getValue() when possible. Having a proper variable name helps readability. * Import static the full Map.Entry so we can just use Entry. > 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: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-14814) RBF: RouterQuotaUpdateService supports inherited rule.
[ https://issues.apache.org/jira/browse/HDFS-14814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16935820#comment-16935820 ] Hadoop QA commented on HDFS-14814: -- | (/) *{color:green}+1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 35m 33s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 2 new or modified test files. {color} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 27m 9s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 34s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 27s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 41s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 14m 57s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 4s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 57s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 34s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 29s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 29s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 17s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 32s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 15m 27s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 11s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 51s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 29m 57s{color} | {color:green} hadoop-hdfs-rbf in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 33s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}132m 17s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=19.03.2 Server=19.03.2 Image:yetus/hadoop:efed4450bf1 | | JIRA Issue | HDFS-14814 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12981052/HDFS-14814.004.patch | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux a82901c13db2 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 07c81e9 | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_222 | | findbugs | v3.1.0-RC1 | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/27939/testReport/ | | Max. process+thread count | 1607 (vs. ulimit of 5500) | | modules | C: hadoop-hdfs-project/hadoop-hdfs-rbf U: hadoop-hdfs-project/hadoop-hdfs-rbf | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/27939/console | | Powered by | Apache Yetus 0.8.0 http://yetus.apache.org | This message was automatically generated. > RBF: RouterQuotaUpdateService supports inherited rule. > -- > > Key: HDFS-14814 > URL: