[
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 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}
was:
The current value 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 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}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)