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

Enis Soztutar commented on HBASE-17937:
---------------------------------------

Makes sense. 

For the patch, you can remove commented-out code: 
{code}
// TEST_UTIL.getConfiguration().setLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, 
100);
{code}

Also rename the {{SlowRegionObserver}}, since it is not a slow coprocessor, but 
instead triggers flush itself. 

> Memstore size becomes negative in case of expensive postPut/Delete 
> Coprocessor call
> -----------------------------------------------------------------------------------
>
>                 Key: HBASE-17937
>                 URL: https://issues.apache.org/jira/browse/HBASE-17937
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.0.0, 1.3.1, 0.98.24
>            Reporter: Abhishek Singh Chouhan
>            Assignee: Abhishek Singh Chouhan
>         Attachments: HBASE-17937.branch-1.001.patch, 
> HBASE-17937.master.001.patch, HBASE-17937.master.002.patch, 
> HBASE-17937.master.002.patch
>
>
> We ran into a situation where the memstore size became negative due to 
> expensive postPut/Delete Coprocessor calls in doMiniBatchMutate. We update 
> the memstore size in the finally block of doMiniBatchMutate, however a queued 
> flush can be triggered during the coprocessor calls(if they are taking time 
> eg. index updates) since we have released the locks and advanced mvcc at this 
> point. The flush will turn the memstore size negative since the value 
> subtracted is the actual value flushed from stores. The negative value 
> impacts the future flushes amongst others that depend on memstore size.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to