[
https://issues.apache.org/jira/browse/HBASE-16989?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15631688#comment-15631688
]
stack commented on HBASE-16989:
-------------------------------
Good one [~chia7712]. The comment should have been changed as part of
hbase-15158. This CP hook runs after the mvcc transaction completes now, not
before. If a CP was working in a manner that required it do something BEFORE
mvcc transaction completed -- I can't think what that could possibly be -- then
HBASE-15158 breaks them.... and that is ok. HBASE-15158 is NOT marked as an
incompatible change because it is all internals but yeah, it has implications
for CPs, implications such as this and the recent side effect around row locks.
> RowProcess#postBatchMutate doesn’t be executed before the mvcc transaction
> completion
> -------------------------------------------------------------------------------------
>
> Key: HBASE-16989
> URL: https://issues.apache.org/jira/browse/HBASE-16989
> Project: HBase
> Issue Type: Bug
> Reporter: ChiaPing Tsai
>
> After the [HBASE-15158|https://issues.apache.org/jira/browse/HBASE-15158],
> RowProcess#postBatchMutate will be executed “after” the mvcc transaction
> completion.
> {code:title=HRegion#processRowsWithLocks}
> // STEP 8. Complete mvcc.
> mvcc.completeAndWait(writeEntry);
> writeEntry = null;
>
> // STEP 9. Release region lock
> if (locked) {
> this.updatesLock.readLock().unlock();
> locked = false;
> }
>
> // STEP 10. Release row lock(s)
> releaseRowLocks(acquiredRowLocks);
>
> // STEP 11. call postBatchMutate hook
> processor.postBatchMutate(this);
> {code}
> {code:title=RowProcess#postBatchMutate}
> /**
> * The hook to be executed after the process() and applying the Mutations
> to region. The
> * difference of this one with {@link #postProcess(HRegion, WALEdit,
> boolean)} is this hook will
> * be executed before the mvcc transaction completion.
> */
> void postBatchMutate(HRegion region) throws IOException;
> {code}
> Do we ought to revamp the comment of RowProcess#postBatchMutate or change the
> call order?
> I prefer the former, because the HRegion#doMiniBatchMutate() also call
> postBatchMutate() after the mvcc transaction completion.
> Any comment? Thanks.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)