You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Tianying Chang <ty...@gmail.com> on 2014/09/03 20:27:22 UTC

Dump hfile to verify hbase delete order

Hi,

I did a small test, want to verify that DeleteMarker is placed before any
Put of the same row/version, for example:

put 't1', 'cf1', 'v1', 100
delete 't1', 'cf1', 100
flush 't1'

But when I dump the hfile being flushed out with command below:

hbase org.apache.hadoop.hbase.io.hfile.HFile -p -v -f myHfile

It only shows one entry for the Delete, but no Put. I thought it should
print out two entries, ordered with Delete first. Since I did not run major
compaction, all entries should be present in the HFile. Am I missing
anything here?

Do I have to have RETAIN_DELETED so that HFile will contain both Put and
Delete? I feel it shouldn't.

Thanks

Tian-Ying

Re: Dump hfile to verify hbase delete order

Posted by Tianying Chang <ty...@gmail.com>.
Ok ,  I figured it out, when flush the memstore out to HFile, it use the
scanner which masks the Put that is earlier than the delete, so the HFile
will not contain the Put.

Thanks
Tian-Ying


On Wed, Sep 3, 2014 at 11:27 AM, Tianying Chang <ty...@gmail.com> wrote:

> Hi,
>
> I did a small test, want to verify that DeleteMarker is placed before any
> Put of the same row/version, for example:
>
> put 't1', 'cf1', 'v1', 100
> delete 't1', 'cf1', 100
> flush 't1'
>
> But when I dump the hfile being flushed out with command below:
>
> hbase org.apache.hadoop.hbase.io.hfile.HFile -p -v -f myHfile
>
> It only shows one entry for the Delete, but no Put. I thought it should
> print out two entries, ordered with Delete first. Since I did not run major
> compaction, all entries should be present in the HFile. Am I missing
> anything here?
>
> Do I have to have RETAIN_DELETED so that HFile will contain both Put and
> Delete? I feel it shouldn't.
>
> Thanks
>
> Tian-Ying
>
>
>