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

stack commented on HBASE-16095:
-------------------------------

bq. However, one complication with HBASE-16209 or similar solutions is that we 
do not know which index regions we will depend on unless we start the recover 
and compute all the index updates from the recovered WAL edits from the data 
table updates and find the regions that these updates belong to. 

So it is worse than one region depending on another; rather, a whole table has 
to be up first.

I'd be ok w/ this in branch-1 as a hack to get over support burden imposed by a 
deployed dodgy secondary index implementation. I don't think we should commit 
to branch-2 though. That should be time enough to get off this misbehavior.

On some user tables being able to be opened before others, won't this always be 
sloppy when regionserver-determined? One slow regionserver would for sure mess 
up any x-server expectation and put a nail in an index table being up before 
any data region tries to open.

> Add priority to TableDescriptor and priority region open thread pool
> --------------------------------------------------------------------
>
>                 Key: HBASE-16095
>                 URL: https://issues.apache.org/jira/browse/HBASE-16095
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>             Fix For: 2.0.0, 1.3.0, 1.4.0, 0.98.21
>
>         Attachments: HBASE-16095-0.98.patch, HBASE-16095-0.98.patch, 
> hbase-16095_v0.patch, hbase-16095_v1.patch, hbase-16095_v2.patch, 
> hbase-16095_v3.patch
>
>
> This is in the similar area with HBASE-15816, and also required with the 
> current secondary indexing for Phoenix. 
> The problem with P secondary indexes is that data table regions depend on 
> index regions to be able to make progress. Possible distributed deadlocks can 
> be prevented via custom RpcScheduler + RpcController configuration via 
> HBASE-11048 and PHOENIX-938. However, region opening also has the same 
> deadlock situation, because data region open has to replay the WAL edits to 
> the index regions. There is only 1 thread pool to open regions with 3 workers 
> by default. So if the cluster is recovering / restarting from scratch, the 
> deadlock happens because some index regions cannot be opened due to them 
> being in the same queue waiting for data regions to open (which waits for  
> RPC'ing to index regions which is not open). This is reproduced in almost all 
> Phoenix secondary index clusters (mutable table w/o transactions) that we 
> see. 
> The proposal is to have a "high priority" region opening thread pool, and 
> have the HTD carry the relative priority of a table. This maybe useful for 
> other "framework" level tables from Phoenix, Tephra, Trafodian, etc if they 
> want some specific tables to become online faster. 
> As a follow up patch, we can also take a look at how this priority 
> information can be used by the rpc scheduler on the server side or rpc 
> controller on the client side, so that we do not have to set priorities 
> manually per-operation. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to