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

rajeshbabu commented on HBASE-6391:
-----------------------------------

I feel this is same as HBASE-6317 and we are trying to address the concerns in 
that.
To answer your questions
bq.may anyone tell me why not to add region in enabling state to regions in 
master
Consider a case where i had disabled a table.  Again try to ENABLE.  But in the 
middle the master restarted.  Now if we add the regions to the this.regions map 
then the EnableTableHandler will see if the regions are available in 
this.regions and wont call assign.  So those regions will remain closed in the 
RS.
bq.in my opinion, we could treat the case as failover rather than clean start.
In HBASE-6317 we are making it as a failover only.
{code}
  // store all the enabling state table names and corresponding online servers' 
regions.
  // This may be needed to avoid calling assign twice for the regions of the 
ENABLING table
  // that could have been assigned through processRIT.
  Map<String, List<HRegionInfo>> enablingTables = new HashMap<String, 
List<HRegionInfo>>(1);
{code}
In the patch available in HBASE-6317 we are trying to avoid double assignment 
by making a map of the enabling table regions so that if those regions are 
already assigned by processRIT we wont assign it now.
Also even if roundrobinassignemt is set to true on master restart and if we 
find some partially enabled tables we go with single assignment.  Please review 
the patch over in HBASE-6317 and let us know if you have some more open points.

                
> Master restart when enabling table will lead to region assignned twice
> ----------------------------------------------------------------------
>
>                 Key: HBASE-6391
>                 URL: https://issues.apache.org/jira/browse/HBASE-6391
>             Project: HBase
>          Issue Type: Bug
>          Components: master
>    Affects Versions: 0.94.0
>            Reporter: zhou wenjian
>             Fix For: 0.94.1
>
>
> The Scenario can be reproduce below.
> Enabling an table, some region is online on regionserver,some are still being 
> processed.
> And restart the master.
> when master failover:
>         // Region is being served and on an active server
>         // add only if region not in disabled and enabling table
>         if (false == checkIfRegionBelongsToDisabled(regionInfo)
>             && false == checkIfRegionsBelongsToEnabling(regionInfo)) {
>           regions.put(regionInfo, regionLocation);
>           addToServers(regionLocation, regionInfo);
>         }
> the opened region will not add to the Regions in master.
> and in the following recoverTableInEnablingState,the region will be assigned 
> again.
> that will lead to the cluster inconsistent

--
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

        

Reply via email to