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

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

     [ https://issues.apache.org/jira/browse/HBASE-21640?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Guanghao Zhang updated HBASE-21640:
-----------------------------------
    Attachment: HBASE-21640.master.001.patch

> 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
>            Priority: Major
>         Attachments: HBASE-21640.master.001.patch
>
>
>  
> {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)