Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.0.0
-
None
-
None
-
Reviewed
Description
After the HBASE-15158, RowProcess#postBatchMutate will be executed “after” the mvcc transaction completion.
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);
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;
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.
Attachments
Attachments
Issue Links
- is related to
-
HBASE-15158 Change order in which we do write pipeline operations; do all under row locks!
- Resolved
-
HBASE-11423 Visibility label and per cell ACL feature not working with HTable#mutateRow() and MultiRowMutationEndpoint
- Closed