You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Jim Kellerman (JIRA)" <ji...@apache.org> on 2008/04/03 03:16:27 UTC

[jira] Commented: (HBASE-71) [hbase] Master should rebalance region assignments periodically

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

Jim Kellerman commented on HBASE-71:
------------------------------------

Reviewed patch. I have the following comments:

Are the region names displayed by regionserver.jsp sorted?

Why does RegionManager.regionsAwaitingAssignment return Set instead of List?

In ServerManager.processRegionClose, is the following correct?
{code}
      // all regions that are being closed should have been marked as 
      // closing. remove it from that state.
      master.regionManager.noLongerClosing(region.getRegionName());
{code}
What about when a region server exits cleanly and reports all the regions it has closed?

Also in ServerManager.processRegionClose, is the following correct?
{code}
      master.regionManager.noLongerUnassigned(region);
{code}
If the region is closed, is it now not assigned?

In ServerManager.getAverageLoad, LOG.debug should be surrounded by
{code}
  if (LOG.isDebugEnabled()) {
    LOG.debug.....
  }
{code}

HRegionServer:
- numRegionsToReport should be final.
- isOnline should be volatile because if it is set in one thread and read in another, there is no guarantee that the current value will have been published to the thread reading the value.

MiniHBaseCluster:
- remove method deleteFile. Not referenced anywhere.
- the imports for o.a.h.fs.FileSystem, o.a.h.fs.Path, o.a.h.h.util.FSUtils and java.io.File are not used. Remove them.
- fix javadoc for
{code}
MiniHBaseCluster(HBaseConfiguration conf, int numRegionServers) throws IOException
{code}

MultiRegionTable:
- the import java.util.SortedMap is not used.
- add javadoc for public constructor.

TestRegionRebalancing:
- imports java.util.Collection, java.util.TreeMap, o.a.h.h.client.HBaseAdmin, o.a.h.h.HConstants, o.a.h.h.HStoreKey, o.a.h.h.HScannerInterface are not used. Remove them.
- Duplicate import of java.util.List - remove one.
- missing javadoc for preHBaseClusterSetup
- incorrect javadoc for testRebalancing
- remove commented code:
{code}
        // assertTrue(server + " isn't of average load! Avg: " + avg + " actual: " 
        //   + server.getOnlineRegions().size(), 
        //   serverLoad <= avg + 2 && serverLoad >= avg - 2);
{code}
- Overall: very nice test case!



> [hbase] Master should rebalance region assignments periodically
> ---------------------------------------------------------------
>
>                 Key: HBASE-71
>                 URL: https://issues.apache.org/jira/browse/HBASE-71
>             Project: Hadoop HBase
>          Issue Type: Improvement
>          Components: master
>            Reporter: Bryan Duxbury
>            Assignee: Bryan Duxbury
>             Fix For: 0.2.0
>
>         Attachments: 71-v2.patch, 71-v3.patch, 71.patch
>
>
> The master currently only does region assignments at startup or when there are splits or dead regionservers. This means that if you join a new regionserver to the cluster after startup, it does not get assigned a fair share of the already-served regions as you would expect. It only gets a share of new regions being served.
> The master should periodically check the balance of regions, based on whatever assignment function, instead of in reaction to the above listed events.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.