[
https://issues.apache.org/jira/browse/HBASE-25709?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17318654#comment-17318654
]
Xiaolin Ha commented on HBASE-25709:
------------------------------------
Yes, I'll also turn on this for user scanners to avoid unexpected long queries.
Thanks, [~stack]. I got it.
Seems that we can check time limit for scanners when the cell should SKIP and
before looping in next()?
Codes are as follows,
{code:java}
case SKIP:
if (scannerContext.checkTimeLimit(LimitScope.BETWEEN_CELLS)) {
return
scannerContext.setScannerState(NextState.TIME_LIMIT_REACHED).hasMoreValues();
}
this.heap.next();
break;
{code}
As a result, we can use the `hbase.hstore.close.check.time.interval` as the
time limit for compaction scanners, no need to add this
`preventLoopReadEnabled` variable to ScannerContext?
> Close region may stuck when region is compacting and skipped most cells read
> ----------------------------------------------------------------------------
>
> Key: HBASE-25709
> URL: https://issues.apache.org/jira/browse/HBASE-25709
> Project: HBase
> Issue Type: Improvement
> Components: Compaction
> Affects Versions: 1.4.13
> Reporter: Xiaolin Ha
> Assignee: Xiaolin Ha
> Priority: Major
> Attachments: Master-UI-RIT.png, RS-region-state.png
>
>
> We found in our cluster about stop region stuck. The region is compacting,
> and its store files has many TTL expired cells. Close region state
> marker(HRegion#writestate.writesEnabled) is not checked in compaction,
> because most cells were skipped.
> !RS-region-state.png|width=698,height=310!
>
> !Master-UI-RIT.png|width=693,height=157!
>
> HBASE-23968 has encountered similar problem, but the solution in it is outer
> the method
> InternalScanner#next(List<Cell> result, ScannerContext scannerContext), which
> will not return if there are many skipped cells, for current compaction
> scanner context. As a result, we need to return in time in the next method,
> and then check the stop marker.
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)