Anoop Sam John commented on HBASE-18375:

bq. If CellChunkMap is requested in hbase-site.xml 
("hbase.hregion.compacting.memstore.index"), then StrongMap is going to cover 
every chunk.
Otherwise, StrongMap is going to cover only chunks in pool.
Then there will be concern as in HBASE-16195. 
It is the ChunkMap impl which need to keep the ref to Chunks for longer. So I 
think it should be responsibility of that class to act.   Also say we have used 
10 chunks till now and then there is an in memory flush/ flatten to 
CellChunkMap.  Now may be some of the Cells become irrelevant and say only 5 
Chunks have active refs from Cell. (Assume all these are Chunk not from pool)  
So we can keep only 5 Chunks in the CellChunkImpl.   
Need to see what to do where.  But if we can do above way that is the best.

> The pool chunks from ChunkCreator are deallocated while in pool because there 
> is no reference to them
> -----------------------------------------------------------------------------------------------------
>                 Key: HBASE-18375
>                 URL: https://issues.apache.org/jira/browse/HBASE-18375
>             Project: HBase
>          Issue Type: Sub-task
>    Affects Versions: 2.0.0-alpha-1
>            Reporter: Anastasia Braginsky
>            Assignee: Anastasia Braginsky
>            Priority: Critical
>             Fix For: 2.0.0, 3.0.0, 2.0.0-alpha-2
>         Attachments: HBASE-18375-V01.patch, HBASE-18375-V02.patch, 
> HBASE-18375-V03.patch, HBASE-18375-V04.patch
> Because MSLAB list of chunks was changed to list of chunk IDs, the chunks 
> returned back to pool can be deallocated by JVM because there is no reference 
> to them. The solution is to protect pool chunks from GC by the strong map of 
> ChunkCreator introduced by HBASE-18010. Will prepare the patch today.

This message was sent by Atlassian JIRA

Reply via email to