I am trying to better understand memstore flush algorithm in HBase.
I have a simple (snappy-compressed) table with 1 column family and I have configured HBase as follows (I have a couple of regions on this region server):
Based on the logs it seems like flushes are happening at 70mb mark what i see in the logs repeatedly is something similar to this
DefaultStoreFlusher Flushed memstore data size=68.14 MB at sequenceid=12561
Why not 128 mb?
Data size is sum of cell data alone (key bytes + value bytes). This is the actual data that will be flushed to Hfile. But heap usage for the same data is usually more. Along with cell's data, it includes the metadata and index. Flush happens when heap size reaches hbase.hregion.memstore.flush.size. Log might call that out.