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

Xiang Li commented on HBASE-18824:
----------------------------------

Hi [~chia7712], thanks for your comment and patience!

1. Regarding
bq. The exeption is caused by that the number of cells we get is greater than 
the max version we set to Get. That is unrelated to the Delete cells.
Yes, it is. But the max version we set to Get is the count of Delete cell, 
which is recorded in a TreeMap called kvCount, mapping from qualifier to the 
count of cell of that qualifier.

2. Regarding
bq. The count of cells we get for the Delete may be not equal with the count of 
existing cells. The comment may mislead us about the data model of HBase. For 
example, 4 Put cells exist in server, and then a Delete having 3 Delete cells 
is submitted to server. The count of existing cells is 4, so the Delete 
operation will fail?
Yes, it is not accurate to use the statement of "existing cell". 

Patch 004 is uploaded to remove the usage of "existing cell". Thanks for the 
suggestions!

> Add meaningful comment to HConstants.LATEST_TIMESTAMP to explain why it is 
> MAX_VALUE
> ------------------------------------------------------------------------------------
>
>                 Key: HBASE-18824
>                 URL: https://issues.apache.org/jira/browse/HBASE-18824
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Xiang Li
>            Assignee: Xiang Li
>            Priority: Minor
>         Attachments: HBASE-18824.master.000.patch, 
> HBASE-18824.master.001.patch, HBASE-18824.master.002.patch, 
> HBASE-18824.master.003.patch, HBASE-18824.master.004.patch
>
>
> Thanks to [Jerry and Chia-Ping Tsai's 
> comments|https://issues.apache.org/jira/browse/HBASE-18824?focusedCommentId=16167392&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16167392]
>  to correct my wrong understanding. 
> The following documentation says that by default(when the timestamp is not 
> specified for Put or Delete), system uses the server's {{currentTimeMillis}}.
> 1. In chapter 27.2.4 Put 
> bq. Doing a put always creates a new version of a cell, at a certain 
> timestamp. {color:#205081}By default the system uses the server’s 
> currentTimeMillis{color}, ...
> 2. In chapter 27.2.5 Delete
> bq. Deletes work by creating tombstone markers. For example, let’s suppose we 
> want to delete a row. For this you can specify a version, or else 
> {color:#205081}by default the currentTimeMillis is used.{color}...
> It seems not consistent with the code. Because in the client side's code, 
> when timestamp is not specified, HConstants.LATEST_TIMESTAMP is used, which 
> is Long.MAX_VALUE, rather than {{System.currentTimeMillis()}}.
> However, the documentation is correct, because on the server side,  timestamp 
> of Put cell with HConstants.LATEST_TIMESTAMP will be replaced with server's 
> {{currentTimeMillis}}.
> So we decide to add more comments to HConstants.LATEST_TIMESTAMP to help the 
> new comers steer clear of the confusion.



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

Reply via email to