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

Anastasia Braginsky commented on HBASE-18375:
---------------------------------------------

Constant guarding the *only pool* chunks with strong Map is a clear solution, 
rather then relying on local thread references which may go wrong at least in 
the future code maintenance.

Both reclaimedChunks and strongChunkIdMap has same data only when all chunks 
are returned to pool. Other than that reclaimedChunks purpose is to specify the 
chunks ready to be used, and strongChunkIdMap purpose is to protect from GC. 
However, I am OK to withdraw the change of protection of strong map.

I am open to any suggestions that will come soon :)

> 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
>            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
(v6.4.14#64029)

Reply via email to