[ 
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)

Reply via email to