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)

Reply via email to