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

sufagang edited comment on PHOENIX-3576 at 12/11/19 10:24 AM:
--------------------------------------------------------------

!image-2019-12-11-18-05-08-036.png|width=967,height=227!

!image-2019-12-11-18-10-48-300.png|width=963,height=226!

 

I kind of encounter this issue again under version  4.14.0-cdh5.14.2, which 
ship with hbase 1.2.

Every time when region split, it took exactly 2 min and then a log "failed to 
get a lock" occur.

Sounds like this issue has got fix on hbase > 1.3, but we are using cdh5.14.2 
with hbase 1.2.

Is there an available solution on older hbase version now? could someone please 
save me!  I have google around for a long time!


was (Author: sfgxuan):
!image-2019-12-11-18-05-08-036.png|width=967,height=227!

!image-2019-12-11-18-10-48-300.png|width=963,height=226!

 

I kind of encounter this issue again under version  4.14.0-cdh5.14.2, which 
ship with hbase 1.2.

Every time when region split, it took exactly 2 min and then a log "failed to 
get a lock" occur.

Sounds like this issue has got fix on hbase > 1.3, but we are using cdh5.14.2 
with hbase 1.2.


Is there an available solution on older hbase version now? could someone please 
save me! 

> The local index updates will be blocked when the region is preparing to split
> -----------------------------------------------------------------------------
>
>                 Key: PHOENIX-3576
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3576
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.9.0
>            Reporter: Chia-Ping Tsai
>            Priority: Major
>         Attachments: PHOENIX-3576.v0.patch, 
> hbase-root-regionserver-node06.ncku.edu.tw.log, 
> image-2019-12-11-18-05-08-036.png, image-2019-12-11-18-10-48-300.png
>
>
> ParallelWriterIndexCommitter uses the AP to update the local index after the 
> region#batchMutate fails. If the region is splitting, all later updates will 
> fail (RegionTooBusyException) due to the write lock. The AP will retry the 
> failed updates until it reaches the retry threshold, so the read lock of 
> region is released after a long time. The read lock blocks the HRegion#close, 
> so the region splitting is also blocked.
> {noformat}
>                     try {
>                         if (allowLocalUpdates
>                                 && env != null
>                                 && tableReference.getTableName().equals(
>                                     
> env.getRegion().getTableDesc().getNameAsString())) {
>                             try {
>                                 throwFailureIfDone();
>                                 IndexUtil.writeLocalUpdates(env.getRegion(), 
> mutations, true);
>                                 return null;
>                             } catch (IOException ignord) {
>                                 // when it's failed we fall back to the 
> standard & slow way
>                                 if (LOG.isDebugEnabled()) {
>                                     LOG.debug("indexRegion.batchMutate failed 
> and fall back to HTable.batch(). Got error="
>                                             + ignord);
>                                 }
>                             }
>                         }
>                         table = factory.getTable(tableReference.get());
>                         throwFailureIfDone();
>                         table.batch(mutations);
>                     } catch (SingleIndexWriteFailureException e) {
>                         throw e;
>                     } catch (IOException e) {
>                         throw new 
> SingleIndexWriteFailureException(tableReference.toString(), mutations, e);
>                     } catch (InterruptedException e) {
>                         // reset the interrupt status on the thread
>                         Thread.currentThread().interrupt();
>                         throw new 
> SingleIndexWriteFailureException(tableReference.toString(), mutations, e);
>                     }
>                     finally{
>                         if (table != null) {
>                             table.close();
>                         }
>                     }
>                     return null;
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to