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)