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

Xiaolin Ha commented on HBASE-27332:
------------------------------------

Thanks, [~bbeaudreault], OOME is bad failure mode,  but the problem here is 
that NO compaction runner will be rejected, because the PriorityBlockingQueue 
is near unbounded in Java. 

The compaction queue now is a PriorityBlockingQueue, which can not be bounded 
by the default implementation. If we bound it, I think it is difficult to keep 
the priority feature of the queue. If only size bound without priority, there 
might store compactions be starved. Since the compaction queue length is 
relevant to the store size on one regionserver, if it grows too large, I think 
there must be some repeatly compaction requests for some stores, like the 
scenes described in HBASE-26249, and we should avoid this using methods as in 
that issue. 

> Remove RejectedExecutionHandler for long/short compaction thread pools
> ----------------------------------------------------------------------
>
>                 Key: HBASE-27332
>                 URL: https://issues.apache.org/jira/browse/HBASE-27332
>             Project: HBase
>          Issue Type: Improvement
>          Components: Compaction
>    Affects Versions: 3.0.0-alpha-3, 2.4.13
>            Reporter: Xiaolin Ha
>            Assignee: Xiaolin Ha
>            Priority: Minor
>             Fix For: 2.6.0, 3.0.0-alpha-4
>
>
> As disscussed in https://github.com/apache/hbase/pull/4725
> actually the max size of StealJobQueue is bouded by the VM limit of an array, 
> and the OOM exception occurs before the rejection handler. So StealJobQueue 
> is equivalent to be unbounded. I think the RejectionHandler may bring some 
> confusions and make the codes a little puzzle.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to