You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jean-Daniel Cryans (JIRA)" <ji...@apache.org> on 2011/08/02 20:48:30 UTC

[jira] [Commented] (HBASE-4155) the problem in hbase thrift client when scan/get rows by timestamp

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

Jean-Daniel Cryans commented on HBASE-4155:
-------------------------------------------

I dug back in the commits to see when this was introduced, and it seems that this was done as part of the uber refactoring done in HBASE-1304 two years ago. The behavior does seem broken tho, it should set the timestamp and not a time range (that would be another method). How it works right seems counter-intuitive.

So I would be +1 on fixing it, but the main issue would be that some users might already rely on the current behavior (I know that we don't here).

Others using Thrift want to comment?

> the problem in hbase thrift client when scan/get rows by timestamp
> ------------------------------------------------------------------
>
>                 Key: HBASE-4155
>                 URL: https://issues.apache.org/jira/browse/HBASE-4155
>             Project: HBase
>          Issue Type: Bug
>          Components: thrift
>    Affects Versions: 0.90.0
>            Reporter: zezhou
>   Original Estimate: 1m
>  Remaining Estimate: 1m
>
> I want to scan rows by specified timestamp. I use following hbase shell command :
> scan 'testcrawl',{TIMESTAMP=>1312268202071} 
> ROW                                         COLUMN+CELL                                                                                                                   
>  put1.com                                   column=crawl:data, timestamp=1312268202071, value=<html>put1</html>                                                          
>  put1.com                                   column=crawl:type, timestamp=1312268202071, value=html                                                                        
>  put1.com                                   column=links:outlinks, timestamp=1312268202071, value=www.163.com;www.sina.com 
> As I expected, I can get the rows which timestamp is 1312268202071.
> But when I use thift client to do the same thing ,the return data is the rows which time before specified timestamp ,  not the same as hbase shell.following is timestamp of return data:
> 1312179170000
> 1312268202059
> I look up the source in  hbase/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServer.java, it use following code to set time parameter .
> scan.setTimeRange(Long.MIN_VALUE, timestamp);
> This cause thrift client return rows before specified row ,not the rows timestamp specified.
> But in hbase client and avro client ,it use following code to set time parameter.
> scan.setTimeStamp(timestamp);
> this will return rows timestamp specified.
> Is this a feature or a bug in thrift client ?
> if this is a feature, which method in thrift client can get the rows by specified timestamp?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira