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

Reply via email to