Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Abandoned
-
0.95.2
-
None
-
None
-
None
Description
See related issue - https://issues.apache.org/jira/browse/HBASE-4583
Currently, we cannot bundle increment/append with put/delete operations. The above JIRA MVCC'izes the increment/append operations.
One issue is that increment(s)/append(s) are not idempotent and hence repeating the transaction has an associated issue of leading to incorrect value/append results. This could be solved by passing additional tokens as part of the append(s).
One possible high level approach could be:
1) Class IncrementMutation which inherits from Increment and Mutation
2) In the mutateRow call, we add a case for "IncrementMutation" object
3) Factor out the code wrapped inside the "lock and MVCC" from increment() function to internalIncrement.
4) Call internalIncrement from mutateRow and increment()