Details
-
Umbrella
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
None
-
None
-
Two write paths Region.batchMutate() and Region.mutateRows() are unified and inconsistencies are resolved.
Description
In doMiniBatchMutate, the preBatchMutate is called before building WAL, but in processRowsWithLocks, we suggest the RowProcessor implementation to build WAL in process method, which is ahead of preBatchMutate.
If a CP modifies the mutations, especially if it removes some cells from the mutations, then the behavior of processRowsWithLocks is broken. The changes applied to memstore and WAL will be different. And there is no way to remove entries from a WALEdit through CP.
Attachments
Attachments
Issue Links
- relates to
-
HBASE-19028 Move BatchOperation its sub-classes into separate files and link MiniBatchOperationInProgress to BatchOperation
- Open
-
HBASE-19259 Explore if mutations can be sorted by rows for mutateRows() method
- Open
-
HBASE-18965 Create alternate API to processRowsWithLock() that doesn't take RowProcessor as an argument
- Resolved
- links to