I'd have to look at the shell code, but its probably that the shell is
building the query to be 'give me the KV at TS=19'.  The Java API lets
you specify both 'give me exact time' and 'give me time range'.

-ryan

On Thu, Nov 18, 2010 at 9:17 PM, Pan W <[email protected]> wrote:
> Hi,
>
> I am using hbase shell to verify some konwleges that I have read from
> the post of "Understanding HBase and BigTable"
>
> That post says:  "If an application asks for a given row at a given timestamp,
> HBase will return cell data where the timestamp is less than or equal to
> the one provided."
> After some experiments, I feel confused about  the concept of "less than" .
>
> Describe details in the following :
> 1) create table:
>    create 'table', {NAME=>'cf1', VERSIONS=>3}
>
> 2) put some data in one cell with multi-version:
>    put 'table', 'row1', 'cf1:c1' , 'aaaa',  16
>    put 'table', 'row1', 'cf1:c1' , 'bbbb', 25
>    put 'table', 'row1', 'cf1:c1' , 'dddd', 32
>
> 3) get data:
>    get 'table', 'row1', {COLUMN=>'cf1:c1', TIMESTAMP=>19}
>
> The result is NULL.
> As the post says,  The 'bbbb' with timestamp 16 that "less than" 19 should be 
> returned,
> Why get nothing?
> (p.s I write some java code to verify the "less than" concept  using
> method setTimestamp(19) of class Get,  and get same result .  )
>
>
> In addition, one more questions:
> When I create table with parameter "VERSIONS=>3",  means in one cell
> only has not more than three version datas, is right?
> If right, when I put more data into same cell, such as:
>     put 'table', 'row1', 'cf1:c1' ,'ffff', 42
> Have four versions or three versions in this cell now?
> why I can still retireve the oldest version data with timestamp 16?
>    hbase(main):022:0>  get 'table', 'row1', {COLUMN=>'cf1:c1', TIMESTAMP=>16}
>    COLUMN                       CELL
>    cf1:c1                      timestamp=16, value=aaaa
>
>
> Sorry about the long mail,  any help will be appreciated.
> --
> Pan W <[email protected]>
>
>

Reply via email to