Inline.

J-D

On Tue, Mar 15, 2011 at 8:32 AM, 茅旭峰 <[email protected]> wrote:
> Thanks J-D for your reply.
>
> It looks like HBASE-3617 will be included in 0.92, then when will 0.92 be
> released?

It should be included in the bug fix release 0.90.2, which isn't
scheduled at the moment. Historically, HBase never had a tight
schedule and releases are made whenever a committer feels like there's
enough fixed jiras and gathers enough votes.

>
> Yes, you're right, we launched tens of threads, putting values of 4MB on
> average, endless.
> Does the region server meant to die because of OOM? I thought it's region
> servers'
> responsibilty to flush memory stores into HFDS, the limitation while doing
> insertion endlessly
> should be the size of HDFS, rather than java heap memory(we set 4GB java
> heap for region
> server).

Yes, the RS does control the MemStores. What it doesn't control very
well is all the queries that are in flight, plus the heap required to
do compactions, plus the data copied when flushing, plus all the other
small tidbits all over the place. Just as an example, every value that
you insert first has to be copied from the socket before it can be
inserted into the MemStore.  If you are using a big write buffer, that
means that every insert currently in flight in a region server takes
double that amount of space.

Garbage collection also isn't done as soon as the objects aren't used,
that wouldn't make sense given how it works, so there's space occupied
by dead objects.

The jira tracking the handling of OOMEs in HBase is
https://issues.apache.org/jira/browse/HBASE-2506

>
> Today, we cleaned up the HDFS, rerun the stress tests, I mean inserting
> endlessly.
> With java memory monitor tools, like jconsole, we find that the java heap of
> master
> is also keeping increasing, another OOM is expected now, though not happened
> so far.
> Is the master meant to die in this regarding?

I think your monitoring is a bit naive, memory isn't cleaned as soon
as it's unused, that's not how the garbage collector works. Your OOME
in the master happens after a region server died because it's trying
to load too much data into memory.

>
> Our keys are SHA1 hashed, which should spread uniformly. But from the web
> page(master:60010),
> we can see most requests are handled only by one region server, and in the
> master log,
> there are lots of region split, and eventually, the regions are spreaded
> uniformly among the region
> servers, is this workflow correct?

That's how it works. There's always one region in the beginning and
then it's split organically. You can create your tables pre-splitted
with this HBaseAdmin method:
http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HBaseAdmin.html#createTable(org.apache.hadoop.hbase.HTableDescriptor,
byte[][])

Or instead of trying to force your data into HBase, you could use the
bulk loader: http://hbase.apache.org/bulk-loads.html

>
> Thanks again for your time, J-D.
>
> Mao Xu-Feng
>

Reply via email to