[ 
https://issues.apache.org/jira/browse/HBASE-16164?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15360017#comment-15360017
 ] 

Anoop Sam John commented on HBASE-16164:
----------------------------------------

We were seeing much more memory usage and GC issues using compacting memstore. 
I found this by code flow walk through only.  Then checked via some logs 
whether it happens and it turned to be correct analysis.

> Missing close of new compacted segments in few occasions which might leak 
> MSLAB chunks from pool
> ------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-16164
>                 URL: https://issues.apache.org/jira/browse/HBASE-16164
>             Project: HBase
>          Issue Type: Sub-task
>    Affects Versions: 2.0.0
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>            Priority: Critical
>             Fix For: 2.0.0
>
>         Attachments: HBASE-16164.patch
>
>
> An in memory compaction of N segments in progress. Inn between snapshot() 
> call comes. We will stop the in progress compaction then. This just sets an 
> AtomicBoolean.  We check this boolean state in the compaction loop (while 
> loop reading the cells from the segments) and before swapping the segments. 
> But if this scenario comes, we are just ignoring the new newly compacted 
> Segment. This is a problem maker when we work with MSLAB pool. The new 
> segment would have acquired some chunks but when will they get released? As 
> we dont close the segment this will leak them.
> Also in swap we have
> {code}
> public boolean swap(VersionedSegmentsList versionedList, ImmutableSegment 
> segment) {
>     if(versionedList.getVersion() != version) {
>       return false;
>     }
>     LinkedList<ImmutableSegment> suffix;
>     synchronized (pipeline){
>       if(versionedList.getVersion() != version) {
>         return false;
>       }
> {code}
> I dont see any possibility for this code flow to happen.  Still for 
> correctness, we should close the segment here too.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to