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

Ted Yu commented on HBASE-20542:
--------------------------------

Took a quick look.
{code}
+    while(!succ) {
+      currentActive = getActive();
+      succ = preUpdate(currentActive, cell, memstoreSizing);
{code}
Potentially how many {{preUpdate}} calls would take place when there is 
contention ?
{code}
+   * @return true if the cell can be added to the
    */
   @Override
-  protected void checkActiveSize() {
-    return;
+  protected boolean checkAndAddToActiveSize(MutableSegment currActive, Cell 
cellToAdd,
{code}
The javadoc for @return is incomplete.


> Better heap utilization for IMC with MSLABs
> -------------------------------------------
>
>                 Key: HBASE-20542
>                 URL: https://issues.apache.org/jira/browse/HBASE-20542
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Eshcar Hillel
>            Assignee: Eshcar Hillel
>            Priority: Major
>         Attachments: HBASE-20542.branch-2.001.patch
>
>
> Following HBASE-20188 we realized in-memory compaction combined with MSLABs 
> may suffer from heap under-utilization due to internal fragmentation. This 
> jira presents a solution to circumvent this problem. The main idea is to have 
> each update operation check if it will cause overflow in the active segment 
> *before* it is writing the new value (instead of checking the size after the 
> write is completed), and if it is then the active segment is atomically 
> swapped with a new empty segment, and is pushed (full-yet-not-overflowed) to 
> the compaction pipeline. Later on the IMC deamon will run its compaction 
> operation (flatten index/merge indices/data compaction) in the background. 
> Some subtle concurrency issues should be handled with care. We next elaborate 
> on them.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to