[ https://issues.apache.org/jira/browse/HBASE-20196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16403942#comment-16403942 ]
Anoop Sam John commented on HBASE-20196: ---------------------------------------- +1 > Maintain all regions with same size in memstore flusher > ------------------------------------------------------- > > Key: HBASE-20196 > URL: https://issues.apache.org/jira/browse/HBASE-20196 > Project: HBase > Issue Type: Improvement > Reporter: Ted Yu > Assignee: Ted Yu > Priority: Major > Attachments: 20196.v1.txt, 20196.v2.txt > > > Here is the javadoc for getCopyOfOnlineRegionsSortedByOffHeapSize() : > {code} > * the biggest. If two regions are the same size, then the last one > found wins; i.e. this > * method may NOT return all regions. > {code} > Currently value type is HRegion - we only store one region per size. > I think we should change value type to Collection<HRegion> so that we don't > miss any region (potentially with big size). > e.g. Suppose there are there regions (R1, R2 and R3) with sizes 100, 100 and > 1, respectively. > Using the current data structure, R2 would be stored in the Map, evicting R1 > from the Map. > This means that the current code would choose to flush regions R2 and R3, > releasing 101 from memory. > If value type is changed to Collection<HRegion>, we would flush both R1 and > R2. This achieves faster memory reclamation. > Confirmed with [~eshcar] over in HBASE-20090 -- This message was sent by Atlassian JIRA (v7.6.3#76005)