[
https://issues.apache.org/jira/browse/HBASE-14229?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
sunyerui updated HBASE-14229:
-----------------------------
Attachment: HBASE-14229-branch-1.patch
HBASE-14229-0.98.patch
Here is the patches, for 0.98 and branch-1, generated by git format-patch.
In the patch for branch 0.98, in order to get the committed file list after
StoreFlushContext.commit(), a new method getCommittedFiles() is added into
Interface StoreFlushContext. I'm not sure whether it's a good idea, but I
didn't figured out another way to do this.
Any comments on this will be appreciated.
> Flushing canceled by coprocessor still leads to memstoreSize set down
> ---------------------------------------------------------------------
>
> Key: HBASE-14229
> URL: https://issues.apache.org/jira/browse/HBASE-14229
> Project: HBase
> Issue Type: Bug
> Components: regionserver
> Affects Versions: 0.98.13, 1.0.2, 1.2.0, 1.1.1
> Reporter: sunyerui
> Attachments: HBASE-14229-0.98.patch, HBASE-14229-branch-1.patch
>
>
> A Coprocessor override "public InternalScanner preFlush(final Store store,
> final InternalScanner scanner)" and return NULL when calling this method,
> will cancel flush request, leaving snapshot un-flushed, and no new storefile
> created. But the HRegion.internalFlushCache still set down memstoreSize to 0
> by totalFlushableSize.
> If there's no write requests anymore, the memstoreSize will remaining as 0,
> and no more flush quests will be processed because of the checking of
> memstoreSize.get() <=0 at the beginning of internalFlushCache.
> This issue may not cause data loss, but it will confuse coprocessor users. If
> we argree with this, I'll apply a patch later.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)