We've also observed more blocking updates happening with the new policy (flush decision made on data size), but could work-around it by reducing the hbase.hregion.memstore.flush.size setting. The advantage of current policy is we could control the flushed file size more accurately, but meanwhile losing some "compatibility" (requires configuration updating during rolling upgrade).
I'm not sure whether we should rollback, but if stick on current policy there should be more documents, metrics (monitoring heap/data occupancy separately) and log message refinements, etc. Attaching some of the logs we observed, which is pretty confusing w/o knowing the details of implementation: 2017-07-03 16:11:54,724 INFO [B.defaultRpcServer.handler=182,queue=11,port=16020] regionserver.MemStoreFlusher: Blocking updates on hadoop0528.et2.tbsite.net,16020,1497336978160: global memstore heapsize 7.2 G is >= than blocking 7.2 G size 2017-07-03 16:11:54,754 INFO [B.defaultRpcServer.handler=186,queue=15,port=16020] regionserver.MemStoreFlusher: Blocking updates on hadoop0528.et2.tbsite.net,16020,1497336978160: global memstore heapsize 7.2 G is >= than blocking 7.2 G size 2017-07-03 16:11:57,571 INFO [MemStoreFlusher.0] regionserver.MemStoreFlusher: Flush of region mainv7_main_result_c,1496,1499062935573.02adfa7cbdc606dce5b79a516e16492a. due to global heap pressure. Total Memstore size=3.2 G, Region memstore size=331.4 M 2017-07-03 16:11:57,571 WARN [B.defaultRpcServer.handler=49,queue=11,port=16020] regionserver.MemStoreFlusher: Memstore is above high water mark and block 2892ms Best Regards, Yu On 6 July 2017 at 00:56, Stack <st...@duboce.net> wrote: > On Wed, Jul 5, 2017 at 6:30 AM, Eshcar Hillel <esh...@yahoo-inc.com.invalid > > > wrote: > > > Hi All, > > I opened a new Jira https://issues.apache.org/jira/browse/HBASE-18294 to > > discuss this question. > > Flush decisions are taken at the region level and also at the region > > server level - there is the question of when to trigger a flush and then > > which region/store to flush.Regions track both their data size (key-value > > size only) and their total heap occupancy (including index and additional > > metadata).One option (which was the past policy) is to trigger flushes > and > > choose flush subjects based on regions heap size - this gives a better > > estimation for sysadmin of how many regions can a RS carry.Another option > > (which is the current policy) is to look at the data size - this gives a > > better estimation of the size of the files that are created by the flush. > > > > > Sounds like we should be doing the former, heap occupancy. An > OutOfMemoryException puts a nail in any benefit other accountings might > have. > > St.Ack > > > > > I see this is as critical to HBase performance and usability, namely > > meeting the user expectation from the system, hence I would like to hear > as > > many voices as possible.Please join the discussion in the Jira and let us > > know what you think. > > Thanks,Eshcar > > > > >