On Wed, May 23, 2012 at 2:33 PM, Alex Baranau <alex.barano...@gmail.com> wrote:
> Talked to J-D (and source code). It turned out that
> when hbase.regionserver.global.memstore.lowerLimit is reached flushes are
> forced without blocking reads (of course,
> if hbase.regionserver.global.memstore.upperLimit is not hit). Makes perfect
> sense. Though couldn't figure this out from settings description in
> hbase-default.xml (tried to come up with the patch:
> https://issues.apache.org/jira/browse/HBASE-6076).

Thanks for this.

>
> So (if one is interested), the logic is the following with regard to
> triggering flushes on the "global regionserver level":
> * flushes are forced when memstore size
> hits hbase.regionserver.global.memstore.lowerLimit
> * flushes are forced *and updates are blocked* when memstore size
> reaches hbase.regionserver.global.memstore.upperLimit. In this case flushes
> are forced and updates are blocked until memstore size is less
> than hbase.regionserver.global.memstore.lowerLimit.
>
> Not sure if that would make sense to separate these two things though:
> * mark until memstore flushes are forced and updates are blocked
> * mark when memstore flushes are forced (without blocking updates)
> As for now for two these
> things hbase.regionserver.global.memstore.lowerLimit is used.

Yeah I guess we could but if you need to tune your setup in a way that
it could make use of an additional config as you described then I'd
say that you're trying to solve the wrong problem. The upper limit is
a protection against overruns, not a feature that people should rely
on :)

J-D

Reply via email to