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

Josh Elser commented on HBASE-18422:
------------------------------------

A few minor suggestions, [~vrodionov]. Could you also try to re-kick the patch 
through QA? I know we had a similar problem on your backup&restore merge patch 
and eventually got a good run.

{code}
+  private boolean balance() throws InterruptedException, IOException {
+    long startTime = System.currentTimeMillis();
+    long timeout = 60000 ; // 60 sec
+    while (System.currentTimeMillis() - startTime < timeout) {
+      if (UTIL.getHBaseCluster().getMaster().balance()) {
+        return true;
+      }
+      Thread.sleep(100);
+    }
+    return false;
+  }
{code}

Turn this into a {{Predicate}} and use the {{Waiter}} functionality on 
{{HBaseTestingUtility}}, please. 

{code}
+      // Less two system regions meta and ns
+      regionCount -= 2;
{code}

Thanks for the comment!

{code}
-      assert(UTIL.getHBaseCluster().getMaster().balance() == true);
+      assert(balance() == true);
{code}

Can you change this (and the other instances) to use {{assertTrue(balance())}} 
instead? It'll generate a much nicer error message upon failure.

{code}
+      if (isMaster(node)) {
+        // Skip Master when calculate load
+        continue;
+      }
{code}

What's the logic behind this? Wouldn't we only want to do this only when Master 
isn't carrying regions (which seems like it will be a thing soon)?

{code}
+    Enumeration<ServerName> en  = serverMap.keys();
+    while (en.hasMoreElements()) {
+      LOG.debug("server: "+  en.nextElement());
+    }
{code}

Can you wrap the while-loop in a {{if (LOG.isDebugEnabled())}} please? Could 
get costly for 100s-1000s of servers.

{code}
+    for (TableName table : assignmentsByTable.keySet()) {
+      Map<ServerName, List<HRegionInfo>> serverMap = 
assignmentsByTable.get(table);
{code}

Turn this into {{entrySet()}} to avoid the extra Map lookup? Or maybe you know 
a reason why that doesn't actually matter ;)

> Fix TestRegionRebalancing
> -------------------------
>
>                 Key: HBASE-18422
>                 URL: https://issues.apache.org/jira/browse/HBASE-18422
>             Project: HBase
>          Issue Type: Sub-task
>          Components: test
>            Reporter: Vladimir Rodionov
>            Assignee: Vladimir Rodionov
>         Attachments: HBASE-18422-v1.patch, HBASE-18422-v2.patch, 
> HBASE-18422-v3.patch
>
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to