ChiaPing Tsai created HBASE-16989:
-------------------------------------
Summary: 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
Priority: Minor
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)