You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Guanghao Zhang (JIRA)" <ji...@apache.org> on 2018/12/25 09:34:00 UTC

[jira] [Created] (HBASE-21640) Remove the TODO when increment zero

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)