[
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)