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

Eshcar Hillel commented on HBASE-20188:
---------------------------------------

Something to consider:
When I ran the experiments to determine the optimal default values for 
in-memory compaction (HBASE-16417), I ran them with CAM setting and no mslab.
My findings for the optimal setting (for SSD) were a threshold of 2% for the 
active segment (hbase.memstore.inmemoryflush.threshold.factor=0.02) and 
pipeline length of 4 (hbase.hregion.compacting.pipeline.segments.limit=4), and 
3 for hdd.
*However*, the current settings are different:
1) using mslab (which means CCM setting and not CAM)
2) the active segment threshold was changed and is now 
hbase.memstore.inmemoryflush.threshold.factor=0.1
But the pipeline length is still set to 4.
This doesn't make much sense. If we flush "only" after aggregating 10% of the 
data in the active segment we can use a pipeline of length 1, this would be  
equivalent to a longer pipeline (of length 4) with smaller segments (consisting 
of 2% of the data).
I hope what I am saying here makes sense.

Bottom line, given that the threshold was changed to 10%, I would recommend 
changing the pipeline length to 1. This should mainly have a positive affect on 
read latency. And regardless, presuming mslab is default (which is not what we 
recommend) may require an additional round of parameter tuning.
 

> [TESTING] Performance
> ---------------------
>
>                 Key: HBASE-20188
>                 URL: https://issues.apache.org/jira/browse/HBASE-20188
>             Project: HBase
>          Issue Type: Umbrella
>          Components: Performance
>            Reporter: stack
>            Priority: Critical
>             Fix For: 2.0.0
>
>         Attachments: ITBLL2.5B_1.2.7vs2.0.0_cpu.png, 
> ITBLL2.5B_1.2.7vs2.0.0_gctime.png, ITBLL2.5B_1.2.7vs2.0.0_iops.png, 
> ITBLL2.5B_1.2.7vs2.0.0_load.png, ITBLL2.5B_1.2.7vs2.0.0_memheap.png, 
> ITBLL2.5B_1.2.7vs2.0.0_memstore.png, ITBLL2.5B_1.2.7vs2.0.0_ops.png, 
> ITBLL2.5B_1.2.7vs2.0.0_ops_NOT_summing_regions.png, YCSB_CPU.png, 
> YCSB_GC_TIME.png, YCSB_IN_MEMORY_COMPACTION=NONE.ops.png, YCSB_MEMSTORE.png, 
> YCSB_OPs.png, YCSB_in-memory-compaction=NONE.ops.png, YCSB_load.png, 
> flamegraph-1072.1.svg, flamegraph-1072.2.svg, tree.txt
>
>
> How does 2.0.0 compare to old versions? Is it faster, slower? There is rumor 
> that it is much slower, that the problem is the asyncwal writing. Does 
> in-memory compaction slow us down or speed us up? What happens when you 
> enable offheaping?
> Keep notes here in this umbrella issue. Need to be able to say something 
> about perf when 2.0.0 ships.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to