[
https://issues.apache.org/jira/browse/HBASE-20196?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ted Yu updated HBASE-20196:
---------------------------
Resolution: Fixed
Hadoop Flags: Reviewed
Fix Version/s: 3.0.0
Status: Resolved (was: Patch Available)
Thanks for the reviews.
> 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
> Fix For: 3.0.0
>
> 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)