You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Pola Sairam (Jira)" <ji...@apache.org> on 2022/01/13 10:47:00 UTC

[jira] [Created] (HBASE-26660) Override the flush requested by PeriodicMemstoreFlusher by the Flush requested when hbase.hregion.memstore.flush.size is breached

Pola Sairam created HBASE-26660:
-----------------------------------

             Summary: Override the flush requested by PeriodicMemstoreFlusher by the Flush requested when hbase.hregion.memstore.flush.size is breached
                 Key: HBASE-26660
                 URL: https://issues.apache.org/jira/browse/HBASE-26660
             Project: HBase
          Issue Type: Bug
          Components: regionserver
            Reporter: Pola Sairam
            Assignee: Pola Sairam


PeriodicMemstoreFlusher requests flush with a random delay ranging from 0 to `hbase.regionserver.periodicmemstoreflusher.rangeofdelayseconds`

For example, consider the following configuration:

^hbase.regionserver.periodicmemstoreflusher.rangeofdelayseconds - 200 secs^

^hbase.hregion.memstore.flush.size - 256MB^

^hbase.hregion.memstore.block.multiplier - 4^

Consider the case when PeriodicMemstoreFlusher requests a flush with 100secs delay and memstore size is less than 256MB.
Now if we have write load that fills the memstore more than 256MB, the flush request because of memstore breaching `hbase.hregion.memstore.flush.size` is not honored as a flush request already exists that was made by PeriodicMemstoreFlusher.

And if we have a huge write load, then blocking limit will also hit and writes will start failing not only till flush is happened but also during the delay time (< 100secs in this case) added by  PeriodicMemstoreFlusher. 

We need to overwrite the flush requested by PeriodicMemstoreFlusher by the flush requested when memstore flush size is reached to remove the delay in flushing.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)