[ 
https://issues.apache.org/jira/browse/HBASE-18546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16126991#comment-16126991
 ] 

Chia-Ping Tsai commented on HBASE-18546:
----------------------------------------

bq. Does we really need setting timestamp for append/increment at client?
Opening this issue is due to behavior inconsistency. I noticed that we will use 
the TS passed by client for Append (if we don't find any old cells), but we 
always ignore the TS for Increment. No documents discuss about such 
differences. After reading HBASE-17112, IMO, It is straightforward to regard 
Append/Increment as PUT if no previous cells are found. In contrast, we should 
use the max(now, old ts+1).

> Append/Increment a cell with custom timestamp
> ---------------------------------------------
>
>                 Key: HBASE-18546
>                 URL: https://issues.apache.org/jira/browse/HBASE-18546
>             Project: HBase
>          Issue Type: New Feature
>          Components: API, Client
>            Reporter: Chia-Ping Tsai
>            Assignee: Chia-Ping Tsai
>            Priority: Critical
>              Labels: incompatibleChange
>             Fix For: 2.0.0
>
>         Attachments: HBASE-18546.v0.patch, HBASE-18546.v1.patch
>
>
> We don't pass the custom timestamp for Increment, and the increment's 
> timestamp always be rewrite. Hence, user can't increment a cell with custom 
> timestamp.
> {code:title=ProtobufUtil.java}
>       if (values != null && values.size() > 0) {
>         for (Cell cell: values) {
>           valueBuilder.clear();
>           valueBuilder.setQualifier(UnsafeByteOperations.unsafeWrap(
>               cell.getQualifierArray(), cell.getQualifierOffset(), 
> cell.getQualifierLength()));
>           valueBuilder.setValue(UnsafeByteOperations.unsafeWrap(
>               cell.getValueArray(), cell.getValueOffset(), 
> cell.getValueLength()));
>           if (cell.getTagsLength() > 0) {
>             
> valueBuilder.setTags(UnsafeByteOperations.unsafeWrap(cell.getTagsArray(),
>                 cell.getTagsOffset(), cell.getTagsLength()));
>           }
>           columnBuilder.addQualifierValue(valueBuilder.build());
>         }
>       }
> {code}
> In contrast to Increment, user can append the cell with custom timestamp. It 
> would be better that make their behavior consistent. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to