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

Andrew Purtell commented on HBASE-20595:
----------------------------------------

Dropping a WIP patch for branch-1 that is even simpler than above discussion.

We avoid a deadlock at initialization time by using the default group to deploy 
system tables. Later, when balancing, if the deploy to default at bootstrap has 
misplaced the table the assignment will be adjusted. 

Also, if a table has not yet been assigned a group during balancing we place it 
into the default group. This is equivalent to how "special tables" were 
formerly added to the default group in the in-memory representation only. 

HBASE-20500 maintains at least one server always in the default group.

RSGroup tests pass for me locally with this change.

> Remove the concept of 'special tables' from rsgroups
> ----------------------------------------------------
>
>                 Key: HBASE-20595
>                 URL: https://issues.apache.org/jira/browse/HBASE-20595
>             Project: HBase
>          Issue Type: Task
>          Components: Region Assignment, rsgroup
>            Reporter: Andrew Purtell
>            Priority: Major
>             Fix For: 3.0.0, 2.1.0, 1.5.0
>
>         Attachments: HBASE-20595-branch-1-WIP.patch
>
>
> Regionserver groups needs to specially handle what it calls "special tables", 
> tables upon which core or other modular functionality depends. They need to 
> be excluded from normal rsgroup processing during bootstrap to avoid circular 
> dependencies or errors due to insufficiently initialized state. I think we 
> also want to ensure that such tables are always given a rsgroup assignment 
> with nonzero servers. (IIRC another issue already raises that point, we can 
> link it later.)
> Special tables include:
> * The system tables in the 'hbase:' namespace
> * The ACL table if the AccessController coprocessor is installed
> * The Labels table if the VisibilityController coprocessor is installed
> * The Quotas table if the FS quotas feature is active
> Either we need a facility where "special tables" can be registered, which 
> should be in core. Or, we institute a blanket rule that core and all 
> extensions that need a "special table" must put them into the 'hbase:' 
> namespace, so the TableName#isSystemTable() test will return TRUE for all, 
> and then rsgroups simply needs to test for that.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to