[ 
https://issues.apache.org/jira/browse/HBASE-18294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16304800#comment-16304800
 ] 

Edward Bortnikov commented on HBASE-18294:
------------------------------------------

My 2 cents - after reviewing the code to the best of my ability. 

IMO the confusion stems from the unfortunate name - heapSize - the code 
historically uses for the overall allocated memory. Such that it is not clear 
whether we mean the Java heap or the OS heap. Might be good to replace globally 
- maybe in a different jira. 

Regarding the per-store flush trigger ... Still not sure what is the reasoning 
behind non-uniform handling of on-(Java) heap and off-(Java) heap allocations. 
Could someone please re-iterate why just monitor the overall allocated memory 
(data + overhead), no matter where, and flush when the threshold is crossed? 
Obviously there are all kinds of concerns, but the only experiment on the table 
is the one by [~eshcar], which demonstrates that regions flush too early, at 
least with on-heap data, due to conservative accounting. 

We intend to benchmark the off-heap write path thoroughly, in particular to 
evaluate the benefits of the CCM index (HBase-16421). If something unexpected 
comes up there, we'll all re-convene and re-discuss. Until then, may I suggest 
to keep the things simple and run the accounting context-free, along the lines 
with [~eshcar]'s patch. 

> Reduce global heap pressure: flush based on heap occupancy
> ----------------------------------------------------------
>
>                 Key: HBASE-18294
>                 URL: https://issues.apache.org/jira/browse/HBASE-18294
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 3.0.0
>            Reporter: Eshcar Hillel
>            Assignee: Eshcar Hillel
>             Fix For: 2.0.0-beta-2
>
>         Attachments: HBASE-18294.01.patch, HBASE-18294.02.patch, 
> HBASE-18294.03.patch, HBASE-18294.04.patch, HBASE-18294.05.patch, 
> HBASE-18294.06.patch, HBASE-18294.07.patch, HBASE-18294.07.patch, 
> HBASE-18294.08.patch, HBASE-18294.09.patch, HBASE-18294.10.patch, 
> HBASE-18294.11.patch, HBASE-18294.11.patch, HBASE-18294.12.patch, 
> HBASE-18294.13.patch
>
>
> A region is flushed if its memory component exceed a threshold (default size 
> is 128MB).
> A flush policy decides whether to flush a store by comparing the size of the 
> store to another threshold (that can be configured with 
> hbase.hregion.percolumnfamilyflush.size.lower.bound).
> Currently the implementation (in both cases) compares the data size 
> (key-value only) to the threshold where it should compare the heap size 
> (which includes index size, and metadata).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to