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