You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by 冯宏华 <fe...@xiaomi.com> on 2013/06/12 10:51:30 UTC

答复: Scanning not show the correct value of latest version

hi, Kyle

This is NOT a bug. There are three types of delete: Delete, DeleteColumn, DeleteFamily; Delete is actually DeleteCell which can only mask(delete) a cell with exactly the SAME timestamp, in your below case, "* Row1                                column=cf:c2, timestamp=1370935373545, type=Delete" is a Delete (DeleteCell) so it can only mask(delete) " Row1   column=cf:c2, timestamp=1370935373545, value=kk" since they have the same timestamps, but can't mask(delete) "Row1  column=cf:c2, timestamp=1370935357741, value=h   *" since they have different timestamps

DeleteColumn can do what you expect: it can mask(delete) cells under the column with timestamps less or equal to the timestamp of the DeleteColumn

--Honghua

________________________________________
发件人: Kyle Lin [kylelin2000@gmail.com]
发送时间: 2013年6月11日 16:58
收件人: user@hbase.apache.org
主题: Scanning not show the correct value of latest version

Hey Guys

    After I modifying a cell many times with delete action, The result of
scan is not correct.

    I Expect the value of "Row1 cf:c2" is null because I've delete the
cell(The line with blue color below). But I actually got "h"(The line with
green color below).

    Is this a hbase bug? Or my operating fault?

hbase(main):007:0> scan 'table42', {RAW => true, VERSIONS => 3}
ROW
COLUMN+CELL

 Row1                                column=cf:c1, timestamp=1370935357679,
value=e
* Row1                                column=cf:c2,
timestamp=1370935373545, type=Delete

 Row1                                column=cf:c2, timestamp=1370935373545,
value=kk
 Row1                                column=cf:c2, timestamp=1370935357741,
value=h   *
 Row2                                column=cf:c1, timestamp=1370935357804,
value=p
 Row2                                column=cf:c2, timestamp=1370935380939,
value=pp
 Row2                                column=cf:c2, timestamp=1370935373582,
value=jj
 Row2                                column=cf:c2, timestamp=1370935357774,
value=d
2 row(s) in 0.0220 seconds

hbase(main):008:0> scan 'table42'
ROW
COLUMN+CELL

 Row1                                column=cf:c1, timestamp=1370935357679,
value=e
* Row1                                column=cf:c2,
timestamp=1370935357741, value=h  *

 Row2                                column=cf:c1, timestamp=1370935357804,
value=p
 Row2                                column=cf:c2, timestamp=1370935380939,
value=pp
2 row(s) in 0.0200 seconds


*P.S. My HBase Version is 0.94.6*


Kyle

答复: 答复: Scanning not show the correct value of latest version

Posted by 冯宏华 <fe...@xiaomi.com>.
My pleasure :-)

--Honghua

________________________________________
发件人: Kyle Lin [kylelin2000@gmail.com]
发送时间: 2013年6月13日 10:41
收件人: user@hbase.apache.org
主题: Re: 答复: Scanning not show the correct value of latest version

Hello Hong Hua

   I've do some experiments and really got the rule of deletion. Thanks for
your explanation.

2013/6/12 冯宏华 <fe...@xiaomi.com>

> hi, Kyle
>
> This is NOT a bug. There are three types of delete: Delete, DeleteColumn,
> DeleteFamily; Delete is actually DeleteCell which can only mask(delete) a
> cell with exactly the SAME timestamp, in your below case, "* Row1
>                      column=cf:c2, timestamp=1370935373545, type=Delete" is
> a Delete (DeleteCell) so it can only mask(delete) " Row1   column=cf:c2,
> timestamp=1370935373545, value=kk" since they have the same timestamps, but
> can't mask(delete) "Row1  column=cf:c2, timestamp=1370935357741, value=h
> *" since they have different timestamps
>
> DeleteColumn can do what you expect: it can mask(delete) cells under the
> column with timestamps less or equal to the timestamp of the DeleteColumn
>
> --Honghua
>
> ________________________________________
> 发件人: Kyle Lin [kylelin2000@gmail.com]
> 发送时间: 2013年6月11日 16:58
> 收件人: user@hbase.apache.org
> 主题: Scanning not show the correct value of latest version
>
> Hey Guys
>
>     After I modifying a cell many times with delete action, The result of
> scan is not correct.
>
>     I Expect the value of "Row1 cf:c2" is null because I've delete the
> cell(The line with blue color below). But I actually got "h"(The line with
> green color below).
>
>     Is this a hbase bug? Or my operating fault?
>
> hbase(main):007:0> scan 'table42', {RAW => true, VERSIONS => 3}
> ROW
> COLUMN+CELL
>
>  Row1                                column=cf:c1, timestamp=1370935357679,
> value=e
> * Row1                                column=cf:c2,
> timestamp=1370935373545, type=Delete
>
>  Row1                                column=cf:c2, timestamp=1370935373545,
> value=kk
>  Row1                                column=cf:c2, timestamp=1370935357741,
> value=h   *
>  Row2                                column=cf:c1, timestamp=1370935357804,
> value=p
>  Row2                                column=cf:c2, timestamp=1370935380939,
> value=pp
>  Row2                                column=cf:c2, timestamp=1370935373582,
> value=jj
>  Row2                                column=cf:c2, timestamp=1370935357774,
> value=d
> 2 row(s) in 0.0220 seconds
>
> hbase(main):008:0> scan 'table42'
> ROW
> COLUMN+CELL
>
>  Row1                                column=cf:c1, timestamp=1370935357679,
> value=e
> * Row1                                column=cf:c2,
> timestamp=1370935357741, value=h  *
>
>  Row2                                column=cf:c1, timestamp=1370935357804,
> value=p
>  Row2                                column=cf:c2, timestamp=1370935380939,
> value=pp
> 2 row(s) in 0.0200 seconds
>
>
> *P.S. My HBase Version is 0.94.6*
>
>
> Kyle
>

Re: 答复: Scanning not show the correct value of latest version

Posted by Kyle Lin <ky...@gmail.com>.
Hello Hong Hua

   I've do some experiments and really got the rule of deletion. Thanks for
your explanation.

2013/6/12 冯宏华 <fe...@xiaomi.com>

> hi, Kyle
>
> This is NOT a bug. There are three types of delete: Delete, DeleteColumn,
> DeleteFamily; Delete is actually DeleteCell which can only mask(delete) a
> cell with exactly the SAME timestamp, in your below case, "* Row1
>                      column=cf:c2, timestamp=1370935373545, type=Delete" is
> a Delete (DeleteCell) so it can only mask(delete) " Row1   column=cf:c2,
> timestamp=1370935373545, value=kk" since they have the same timestamps, but
> can't mask(delete) "Row1  column=cf:c2, timestamp=1370935357741, value=h
> *" since they have different timestamps
>
> DeleteColumn can do what you expect: it can mask(delete) cells under the
> column with timestamps less or equal to the timestamp of the DeleteColumn
>
> --Honghua
>
> ________________________________________
> 发件人: Kyle Lin [kylelin2000@gmail.com]
> 发送时间: 2013年6月11日 16:58
> 收件人: user@hbase.apache.org
> 主题: Scanning not show the correct value of latest version
>
> Hey Guys
>
>     After I modifying a cell many times with delete action, The result of
> scan is not correct.
>
>     I Expect the value of "Row1 cf:c2" is null because I've delete the
> cell(The line with blue color below). But I actually got "h"(The line with
> green color below).
>
>     Is this a hbase bug? Or my operating fault?
>
> hbase(main):007:0> scan 'table42', {RAW => true, VERSIONS => 3}
> ROW
> COLUMN+CELL
>
>  Row1                                column=cf:c1, timestamp=1370935357679,
> value=e
> * Row1                                column=cf:c2,
> timestamp=1370935373545, type=Delete
>
>  Row1                                column=cf:c2, timestamp=1370935373545,
> value=kk
>  Row1                                column=cf:c2, timestamp=1370935357741,
> value=h   *
>  Row2                                column=cf:c1, timestamp=1370935357804,
> value=p
>  Row2                                column=cf:c2, timestamp=1370935380939,
> value=pp
>  Row2                                column=cf:c2, timestamp=1370935373582,
> value=jj
>  Row2                                column=cf:c2, timestamp=1370935357774,
> value=d
> 2 row(s) in 0.0220 seconds
>
> hbase(main):008:0> scan 'table42'
> ROW
> COLUMN+CELL
>
>  Row1                                column=cf:c1, timestamp=1370935357679,
> value=e
> * Row1                                column=cf:c2,
> timestamp=1370935357741, value=h  *
>
>  Row2                                column=cf:c1, timestamp=1370935357804,
> value=p
>  Row2                                column=cf:c2, timestamp=1370935380939,
> value=pp
> 2 row(s) in 0.0200 seconds
>
>
> *P.S. My HBase Version is 0.94.6*
>
>
> Kyle
>