You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Reid Chan (Jira)" <ji...@apache.org> on 2020/07/17 03:11:00 UTC

[jira] [Resolved] (HBASE-24578) [WAL] Add a parameter to config RingBufferEventHandler's SyncFuture count

     [ https://issues.apache.org/jira/browse/HBASE-24578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Reid Chan resolved HBASE-24578.
-------------------------------
    Hadoop Flags: Reviewed
      Resolution: Fixed

> [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
>            Assignee: wenfeiyi666
>            Priority: Major
>             Fix For: 3.0.0-alpha-1, 2.3.1, 1.7.0, 2.2.6
>
>
> 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)