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