Guanghao Zhang created HBASE-21640:
--------------------------------------
Summary: Remove the TODO when increment zero
Key: HBASE-21640
URL: https://issues.apache.org/jira/browse/HBASE-21640
Project: HBase
Issue Type: Improvement
Reporter: Guanghao Zhang
{code:java}
// If delta amount to apply is 0, don't write WAL or MemStore.
long deltaAmount = getLongValue(delta);
// TODO: Does zero value mean reset Cell? For example, the ttl.
apply = deltaAmount != 0;
{code}
This is an optimization when increment 0. But it introduced some new problems.
1.As the TODO said, Does zero value mean reset ttl?
2.HBASE-17318 have to introduce a new variable "firstWrite" because it don't
apply 0.
3. There is a coprocessor method postMutationBeforeWAL to return a new cell.
But it may be not applied.
{code:java}
// Give coprocessors a chance to update the new cell
if (coprocessorHost != null) {
newCell =
coprocessorHost.postMutationBeforeWAL(mutationType, mutation,
currentValue, newCell);
}
// If apply, we need to update memstore/WAL with new value; add it toApply.
if (apply || firstWrite) {
toApply.add(newCell);
}
{code}
So my proposal is remove this optimization. Any suggestions are welcomed.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)