Anastasia Braginsky commented on HBASE-18375:

[~ram_krish], when I wrote about ByteBuffers being freed we had slightly 
different scenario, with more bugs (the one with version in pipeline not 
increased upon in-memory flush), there everything was released including 
ByteBuffers. After this was fixed, I continued to see the problem of chunks 
being released unexpectedly. And now I see that the chunks are released, while 
the ButeBuffers are not released.

My plan is as following:
1. To have *only* StrongMap in ChunkCreator
2. 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.
3. No change in MSLAB (chunkID list remains there).

I believe this change is applicable also to Release 2.0, just let me know what 
branch to update. So I do not plan to do 2 JIRAs.

> 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