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

Anastasia Braginsky commented on HBASE-18056:
---------------------------------------------

When 2 segments are merged together only CellArrayMap is rebuilt, all the cells 
remain in place whether on MSLAB or on JVM heap. 
Regarding why GC works better with merge, we have a theory, and this theory is 
supported with performance numbers. Of course we cannot ensure this theory in 
100%.

So this is the theory:
In case of merge, let's say each of old CellArayMaps was of size 1KB and new 
CellArrayMap has size 2KB. So 2KB are released to GC now. Later the same 
happens five times again and we release 5KB (1KB at each point in time). 
Finally, when flushing to disk we release 7KB in one piece. While without merge 
we release 7 pieces of 1KB. So although in total there is more memory to 
collect, we believe that it is easier to GC to grasp the situation when memory 
is released over time and in one piece, in contrast to single release with 
multiple pieces.

I am putting a patch here to see the QA results.

> Change CompactingMemStore in BASIC mode to merge multiple segments in pipeline
> ------------------------------------------------------------------------------
>
>                 Key: HBASE-18056
>                 URL: https://issues.apache.org/jira/browse/HBASE-18056
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Anastasia Braginsky
>         Attachments: HBASE-18056-V01.patch
>
>
> Under HBASE-16417 it was decided that CompactingMemStore in BASIC mode should 
> merge multiple ImmutableSegments in CompactionPipeline. Basic+Merge actually 
> demonstrated reduction in GC, alongside improvement in other metrics.
> However, the limit on the number of segments in pipeline is still set to 30. 
> Under this JIRA it should be changed to 1, as it was tested under HBASE-16417.



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

Reply via email to