phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Taylor (JIRA)" <>
Subject [jira] [Updated] (PHOENIX-3072) Deadlock on region opening with secondary index recovery
Date Wed, 14 Sep 2016 05:38:20 GMT


James Taylor updated PHOENIX-3072:
    Attachment: PHOENIX-3072_v4.patch

Final version of patch with indentation corrected. Would you have time to commit this, [~enis]
to 4.8 and 4.x branches?

> Deadlock on region opening with secondary index recovery
> --------------------------------------------------------
>                 Key: PHOENIX-3072
>                 URL:
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>             Fix For: 4.9.0, 4.8.1
>         Attachments: PHOENIX-3072_v3.patch, PHOENIX-3072_v4.patch, phoenix-3072_v1.patch,
> There is a distributed deadlock happening in clusters with some moderate number of regions
for the data tables and secondary index tables and cluster and it is cluster restart or some
large failure. We have seen this in a couple of production cases already. 
> Opening of regions in hbase is performed by a thread pool with 3 threads by default.
Every regionserver can open 3 regions at a time. However, opening data table regions has to
write to multiple index regions during WAL recovery. All other region open requests are queued
up in a single queue. This causes a deadlock, since the secondary index regions are also opened
by the same thread pools that we do the work. So if there is greater number of data table
regions then available number of region opening threads from regionservers, the secondary
index region open requests just wait to be processed in the queue. Since these index regions
are not open, the region opening of data table regions just block the region opening threads
for a long time.  
> One proposed fix is to use a different thread pool for opening regions of the secondary
index tables so that we will not deadlock. See HBASE-16095 for the HBase-level fix. In Phoenix,
we just have to set the priority for secondary index tables. 

This message was sent by Atlassian JIRA

View raw message