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

Anastasia Braginsky commented on HBASE-16438:
---------------------------------------------

OK, I understand what you are saying. Then how about using Java's Soft 
References in the ChunkCreator?

https://docs.oracle.com/javase/7/docs/api/java/lang/ref/SoftReference.html

In short, Soft References are used in Java to implement caches and objects 
pointed by soft references can be GCed if no other (hard reference) is pointing 
to this object. 

This sounds to me as good (and again simple) solution. If any cell is not 
reachable from any CSLM/CellArrayMap/CellChunkMap then we are not going to read 
its chunkID and to ask for translation, so we do not care that its reference is 
cleared from the ChunkCreator's map. Just need to be careful about those null 
pointers in the ChunkCreator's Map. What do you think?

bq. I mean how to pass the info whether the CSLM has to be converted to 
CellArrayMap or CellChunkMap.

I plan to have it user-configured as part of MemStore definition (at least as a 
first step). I mean once created, some CompactingMemStore is planed to work 
with CellArayMap and another CompactingMemStore is created to work with 
CellChunkMap (mostly for the off-heap). But this is of course can be changed.



> Create a cell type so that chunk id is embedded in it
> -----------------------------------------------------
>
>                 Key: HBASE-16438
>                 URL: https://issues.apache.org/jira/browse/HBASE-16438
>             Project: HBase
>          Issue Type: Sub-task
>    Affects Versions: 2.0.0
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>         Attachments: HBASE-16438_1.patch, 
> HBASE-16438_3_ChunkCreatorwrappingChunkPool.patch, 
> HBASE-16438_4_ChunkCreatorwrappingChunkPool.patch, HBASE-16438.patch, 
> MemstoreChunkCell_memstoreChunkCreator_oldversion.patch, 
> MemstoreChunkCell_trunk.patch
>
>
> For CellChunkMap we may need a cell such that the chunk out of which it was 
> created, the id of the chunk be embedded in it so that when doing flattening 
> we can use the chunk id as a meta data. More details will follow once the 
> initial tasks are completed. 
> Why we need to embed the chunkid in the Cell is described by [~anastas] in 
> this remark over in parent issue 
> https://issues.apache.org/jira/browse/HBASE-14921?focusedCommentId=15244119&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15244119



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to