You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Ted Yu <yu...@gmail.com> on 2010/09/25 00:34:11 UTC

empty table after flush

Hi,
We use HBase 0.20.6 with HBASE-2473
I found this in log where we call HTable.flushCommits():

2010-09-24 11:17:40,838 INFO com.ciq.StripedHBaseTable: flushing 548376
bytes, maxCell: 2760 autoFlush=false for
MM_2750_TEST-THREEGPPSPEECHCALLS-1285349215150
2010-09-24 11:17:40,920 INFO com.ciq.StripedHBaseTable: flush complete

But table MM_2750_TEST-THREEGPPSPEECHCALLS-1285349215150 doesn't have any
rows after the above call.
The modification time of any directory under
/hbase/MM_2750_TEST-THREEGPPSPEECHCALLS-1285349215150 was 2010-09-24 10:26
and there is only
.regioninfo<http://sjc9-flash-grid02.carrieriq.com:50075/browseDirectory.jsp?dir=%2Fhbase%2FMM_2750_TEST-THREEGPPSPEECHCALLS-1285349215150%2F1659597057%2F.regioninfo&namenodeInfoPort=50070>underneath.

Has anybody seen this scenario ?

Thanks

Re: empty table after flush

Posted by Jean-Daniel Cryans <jd...@apache.org>.
> StripedHBaseTable is just a wrapper around HTable.

Ok.

> QA installed another application which queries HBase. When QA didn't see
> meaningful data from the application.
> Why didn't HBase serve data from Memstore ?

I cannot answer this question, as far as I know 0.20.6 doesn't have a
bug that prevents you from writing data (and many people use it in
production environments). My guess is, the data never got into HBase
or it was written with wrong timestamps and is hidden by delete
markers or something "time-travelly" like that. If they do play with
timestamps, ask them not to or verify they do the right thing.

> QA used stop-hbase.sh to stop HBase. Would Memstore contents be flushed to
> Storefile at that moment ?

Yep, if you don't see any store file then the data never made it into hbase.

>
> QA servers were running JVM version 1.6.0_18

>From http://hbase.apache.org/docs/r0.20.6/api/overview-summary.html#requirements

"Java 1.6.x, preferably from Sun. Use the latest version available
except u18 (u19 is fine)."

J-D

Re: empty table after flush

Posted by Ted Yu <yu...@gmail.com>.
StripedHBaseTable is just a wrapper around HTable.
QA installed another application which queries HBase. When QA didn't see
meaningful data from the application.
Why didn't HBase serve data from Memstore ?
QA used stop-hbase.sh to stop HBase. Would Memstore contents be flushed to
Storefile at that moment ?

QA servers were running JVM version 1.6.0_18
QA would switch to JVM version 1.6.0_20

Cheers

On Fri, Sep 24, 2010 at 3:38 PM, Jean-Daniel Cryans <jd...@apache.org>wrote:

> I don't know anything about that StripedHBaseTable you're using, but
> when you call flushCommits on HTable it only flushes the client write
> buffer, not the Memstore, so if your table was new then your data is
> in that Memstore and not in a Storefile.
>
> J-D
>
> On Fri, Sep 24, 2010 at 3:34 PM, Ted Yu <yu...@gmail.com> wrote:
> > Hi,
> > We use HBase 0.20.6 with HBASE-2473
> > I found this in log where we call HTable.flushCommits():
> >
> > 2010-09-24 11:17:40,838 INFO com.ciq.StripedHBaseTable: flushing 548376
> > bytes, maxCell: 2760 autoFlush=false for
> > MM_2750_TEST-THREEGPPSPEECHCALLS-1285349215150
> > 2010-09-24 11:17:40,920 INFO com.ciq.StripedHBaseTable: flush complete
> >
> > But table MM_2750_TEST-THREEGPPSPEECHCALLS-1285349215150 doesn't have any
> > rows after the above call.
> > The modification time of any directory under
> > /hbase/MM_2750_TEST-THREEGPPSPEECHCALLS-1285349215150 was 2010-09-24
> 10:26
> > and there is only
> > .regioninfo<
> http://sjc9-flash-grid02.carrieriq.com:50075/browseDirectory.jsp?dir=%2Fhbase%2FMM_2750_TEST-THREEGPPSPEECHCALLS-1285349215150%2F1659597057%2F.regioninfo&namenodeInfoPort=50070
> >underneath.
> >
> > Has anybody seen this scenario ?
> >
> > Thanks
> >
>

Re: empty table after flush

Posted by Jean-Daniel Cryans <jd...@apache.org>.
I don't know anything about that StripedHBaseTable you're using, but
when you call flushCommits on HTable it only flushes the client write
buffer, not the Memstore, so if your table was new then your data is
in that Memstore and not in a Storefile.

J-D

On Fri, Sep 24, 2010 at 3:34 PM, Ted Yu <yu...@gmail.com> wrote:
> Hi,
> We use HBase 0.20.6 with HBASE-2473
> I found this in log where we call HTable.flushCommits():
>
> 2010-09-24 11:17:40,838 INFO com.ciq.StripedHBaseTable: flushing 548376
> bytes, maxCell: 2760 autoFlush=false for
> MM_2750_TEST-THREEGPPSPEECHCALLS-1285349215150
> 2010-09-24 11:17:40,920 INFO com.ciq.StripedHBaseTable: flush complete
>
> But table MM_2750_TEST-THREEGPPSPEECHCALLS-1285349215150 doesn't have any
> rows after the above call.
> The modification time of any directory under
> /hbase/MM_2750_TEST-THREEGPPSPEECHCALLS-1285349215150 was 2010-09-24 10:26
> and there is only
> .regioninfo<http://sjc9-flash-grid02.carrieriq.com:50075/browseDirectory.jsp?dir=%2Fhbase%2FMM_2750_TEST-THREEGPPSPEECHCALLS-1285349215150%2F1659597057%2F.regioninfo&namenodeInfoPort=50070>underneath.
>
> Has anybody seen this scenario ?
>
> Thanks
>