Ted Yu commented on HBASE-19133:

In CellChunkImmutableSegment#copyCellIntoMSLAB , we shouldn't pass true for 
    long oldHeapSize = heapSizeChange(cell, true);
    long oldCellSize = getCellLength(cell);
    cell = maybeCloneWithAllocator(cell, true);
We can lift maybeCloneWithAllocator() as the first call in copyCellIntoMSLAB.
maybeCloneWithAllocator() should check whether clone is supported by 
this.memStoreLAB. If not, it just returns the Cell.
copyCellIntoMSLAB() would determine the forceCloneOfBigCell flag based on 
whether cloning happened or nor.

[~anastas] [~galish]:
What do you think ?

> Transfer big cells or upserted/appended cells into MSLAB upon flattening to 
> CellChunkMap
> ----------------------------------------------------------------------------------------
>                 Key: HBASE-19133
>                 URL: https://issues.apache.org/jira/browse/HBASE-19133
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Anastasia Braginsky
>            Assignee: Gali Sheffi
>            Priority: Major
>             Fix For: 2.0.0-beta-1
>         Attachments: HBASE-19133-V01.patch, HBASE-19133-V02.patch, 
> HBASE-19133-V03.patch, HBASE-19133.01.patch, HBASE-19133.02.patch, 
> HBASE-19133.03.patch, HBASE-19133.04.patch, HBASE-19133.05.patch, 
> HBASE-19133.06.patch, HBASE-19133.07.patch, HBASE-19133.08.patch, 
> HBASE-19133.09.patch, HBASE-19133.10.patch, HBASE-19133.11.patch
> CellChunkMap Segment index requires all cell data to be written in the MSLAB 
> Chunks. Eventhough MSLAB is enabled, cells bigger than chunk size or 
> upserted/incremented/appended cells are still allocated on the JVM stack. If 
> such cells are found in the process of flattening into CellChunkMap 
> (in-memory-flush) they need to be copied into MSLAB.

This message was sent by Atlassian JIRA

Reply via email to