[
https://issues.apache.org/jira/browse/HBASE-24578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Reid Chan updated HBASE-24578:
------------------------------
Description:
The current value of RingBufferEventHandler's handler is the value of
{{hbase.regionserver.handler.count}}, which works good in default wal provider
--- one WAL per regionserver.
When trying to use WAL group provider, either by group or wal per region, the
default value is bad. If rs has 100 regions and wal per region strategy is
used, then rs will allocate 100 * SyncFuture[$hbase.regionserver.handler.count]
array
{code}
int maxHandlersCount = conf.getInt(HConstants.REGION_SERVER_HANDLER_COUNT, 200);
this.ringBufferEventHandler = new RingBufferEventHandler(
conf.getInt("hbase.regionserver.hlog.syncer.count", 5),
maxHandlersCount);
...
----
RingBufferEventHandler(final int syncRunnerCount, final int maxHandlersCount) {
this.syncFutures = new SyncFuture[maxHandlersCount];
...
}
{code}
was:
The current value of RingBufferEventHandler's handler is the value of
{{hbase.regionserver.handler.count}}, which works good in default wal provider
--- one WAL per regionserver.
When I tried to use WAL group provider, either by group or wal per region, the
default value was bad. If rs has 100 regions I use wal per region strategy,
then rs will allocate 100 * SyncFuture[$hbase.regionserver.handler.count] array
{code}
int maxHandlersCount = conf.getInt(HConstants.REGION_SERVER_HANDLER_COUNT, 200);
this.ringBufferEventHandler = new RingBufferEventHandler(
conf.getInt("hbase.regionserver.hlog.syncer.count", 5),
maxHandlersCount);
...
----
RingBufferEventHandler(final int syncRunnerCount, final int maxHandlersCount) {
this.syncFutures = new SyncFuture[maxHandlersCount];
...
}
{code}
> [WAL] Add a parameter to config RingBufferEventHandler's SyncFuture count
> -------------------------------------------------------------------------
>
> Key: HBASE-24578
> URL: https://issues.apache.org/jira/browse/HBASE-24578
> Project: HBase
> Issue Type: Improvement
> Components: wal
> Affects Versions: 1.4.13, 2.2.5
> Reporter: Reid Chan
> Priority: Major
>
> The current value of RingBufferEventHandler's handler is the value of
> {{hbase.regionserver.handler.count}}, which works good in default wal
> provider --- one WAL per regionserver.
> When trying to use WAL group provider, either by group or wal per region, the
> default value is bad. If rs has 100 regions and wal per region strategy is
> used, then rs will allocate 100 *
> SyncFuture[$hbase.regionserver.handler.count] array
> {code}
> int maxHandlersCount = conf.getInt(HConstants.REGION_SERVER_HANDLER_COUNT,
> 200);
> this.ringBufferEventHandler = new RingBufferEventHandler(
> conf.getInt("hbase.regionserver.hlog.syncer.count", 5),
> maxHandlersCount);
> ...
> ----
> RingBufferEventHandler(final int syncRunnerCount, final int maxHandlersCount)
> {
> this.syncFutures = new SyncFuture[maxHandlersCount];
> ...
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)