hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "rajeshbabu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-6317) Master clean start up and Partially enabled tables make region assignment inconsistent.
Date Mon, 30 Jul 2012 01:52:34 GMT

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

rajeshbabu commented on HBASE-6317:
-----------------------------------

bq.  ALREADY_OPENED is not handled by bulk assigned, is that true?
It has handled in trunk as part of HBASE-6012 but not in 94. We can back port to 94.

But this itself may not solve the problem because 
->during clean cluster start up if we set "hbase.master.startup.retainassign" to true we
will call retainAssignment the regions may be assigned to same region servers before master
restart other wise we will get bulk plan by round robin assignment and we may get different
RS than RS before master restart( which will cause double assignment).
-> in case of failover also while recovering ENABLING tables
if "hbase.master.enabletable.roundrobin" set to true we will get different RS in bulk plan
than RS before restart(double assignment again)
-> lets suppose some of ENABLING table regions are in transition during master startup
they are not added to regionAssignments in regionStates then we will consider the regions
also for assignment in EnableTableHandler which may cause double assignments.

{code}
    if (this.failover == false && this.enablingTables.size() > 0 && deadServers.isEmpty())
{
      this.failover = true;
    }
{code}
bq. Your patch may still not cover all scenarios, for example, if the deadServers is not empty
failover is false and deadServers not empty means its really clean cluster startup considering
as failover will slow down master startup. If whole cluster is down then no need to worry
about double assignments. 
If all the tables are in ENABLING state then failover is false and deadServers is empty then
we can consider as failover and proceed startup.
                
> Master clean start up and Partially enabled tables make region assignment inconsistent.
> ---------------------------------------------------------------------------------------
>
>                 Key: HBASE-6317
>                 URL: https://issues.apache.org/jira/browse/HBASE-6317
>             Project: HBase
>          Issue Type: Bug
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: rajeshbabu
>             Fix For: 0.92.2, 0.96.0, 0.94.2
>
>         Attachments: HBASE-6317_94.patch, HBASE-6317_94_3.patch
>
>
> If we have a  table in partially enabled state (ENABLING) then on HMaster restart we
treat it as a clean cluster start up and do a bulk assign.  Currently in 0.94 bulk assign
will not handle ALREADY_OPENED scenarios and it leads to region assignment problems.  Analysing
more on this we found that we have better way to handle these scenarios.
> {code}
> if (false == checkIfRegionBelongsToDisabled(regionInfo)
>             && false == checkIfRegionsBelongsToEnabling(regionInfo)) {
>           synchronized (this.regions) {
>             regions.put(regionInfo, regionLocation);
>             addToServers(regionLocation, regionInfo);
>           }
> {code}
> We dont add to regions map so that enable table handler can handle it.  But as nothing
is added to regions map we think it as a clean cluster start up.
> Will come up with a patch tomorrow.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message