Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
Incompatible change, Reviewed
-
Changed the coprocessor RegionObserver methods preBatchMutate and postBatchMutate to remove the lock ids from the methods as lock ids are not longer used.
-
0.96notable
Description
HBASE-8806 revealed performance problems with batch mutations failing to reacquire the same row locks. It looks like HBASE-8806 will use a less intrusive change for 0.94 to have batch mutations track their own row locks and not attempt to reacquire them. Another approach will be to support reentrant row locks directly. This allows simplifying a great deal of calling code to no longer track and pass around lock ids.
One affect this change will have is changing the RegionObserver coprocessor's methods preBatchMutate and postBatchMutate from taking a MiniBatchOperationInProgress<Pair<Mutation, Integer>> miniBatchOp to taking a MiniBatchOperationInProgress<Mutation> miniBatchOp. I don't believe CPs should be relying on these lock ids, but that's a potential incompatibility.
Attachments
Attachments
Issue Links
- relates to
-
HBASE-8806 Row locks are acquired repeatedly in HRegion.doMiniBatchMutation for duplicate rows.
- Closed