[ https://issues.apache.org/jira/browse/HBASE-16278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15390594#comment-15390594 ]
Duo Zhang edited comment on HBASE-16278 at 7/23/16 7:27 AM: ------------------------------------------------------------ This the test result on a machine with 2 * E5-2630 v2, 128G RAM, jdk8u72. The machine is not used by me exclusively so the result may have some noise, but it does not change the qualitative result since CHM is much faster. {noformat} ./bin/run.sh -f 1 -t 10 -i 10 Benchmark Mode Cnt Score Error Units CHMTest.test thrpt 10 1328.692 ± 26.052 ops/s CSLMTest.test thrpt 10 371.875 ± 3.299 ops/s ./bin/run.sh -f 1 -t 20 -i 10 Benchmark Mode Cnt Score Error Units CHMTest.test thrpt 10 2093.498 ± 42.794 ops/s CSLMTest.test thrpt 10 560.551 ± 23.960 ops/s ./bin/run.sh -f 1 -t 40 -i 10 Benchmark Mode Cnt Score Error Units CHMTest.test thrpt 10 2072.665 ± 52.749 ops/s CSLMTest.test thrpt 10 621.861 ± 14.405 ops/s ./bin/run.sh -f 1 -t 100 -i 10 Benchmark Mode Cnt Score Error Units CHMTest.test thrpt 10 2105.644 ± 27.742 ops/s CSLMTest.test thrpt 10 624.786 ± 12.830 ops/s ./bin/run.sh -f 1 -t 200 -i 10 Benchmark Mode Cnt Score Error Units CHMTest.test thrpt 10 2160.738 ± 53.120 ops/s CSLMTest.test thrpt 10 639.131 ± 10.326 ops/s {noformat} was (Author: apache9): This the test result on a machine with 2 * E5-2630 v2, 128G RAM. The machine is not used by me exclusively so the result may have some noise, but it does not change the qualitative result since CHM is much faster. {noformat} ./bin/run.sh -f 1 -t 10 -i 10 Benchmark Mode Cnt Score Error Units CHMTest.test thrpt 10 1328.692 ± 26.052 ops/s CSLMTest.test thrpt 10 371.875 ± 3.299 ops/s ./bin/run.sh -f 1 -t 20 -i 10 Benchmark Mode Cnt Score Error Units CHMTest.test thrpt 10 2093.498 ± 42.794 ops/s CSLMTest.test thrpt 10 560.551 ± 23.960 ops/s ./bin/run.sh -f 1 -t 40 -i 10 Benchmark Mode Cnt Score Error Units CHMTest.test thrpt 10 2072.665 ± 52.749 ops/s CSLMTest.test thrpt 10 621.861 ± 14.405 ops/s ./bin/run.sh -f 1 -t 100 -i 10 Benchmark Mode Cnt Score Error Units CHMTest.test thrpt 10 2105.644 ± 27.742 ops/s CSLMTest.test thrpt 10 624.786 ± 12.830 ops/s ./bin/run.sh -f 1 -t 200 -i 10 Benchmark Mode Cnt Score Error Units CHMTest.test thrpt 10 2160.738 ± 53.120 ops/s CSLMTest.test thrpt 10 639.131 ± 10.326 ops/s {noformat} > Use ConcurrentHashMap instead of ConcurrentSkipListMap if possible > ------------------------------------------------------------------ > > Key: HBASE-16278 > URL: https://issues.apache.org/jira/browse/HBASE-16278 > Project: HBase > Issue Type: Improvement > Reporter: Duo Zhang > > SSD and 10G network make our system CPU bound again, so the speed of memory > operation only code becomes more and more important. > In HBase, if want to use byte[] as a map key, then we will always use CSLM > even if we do not need the map to be ordered. I know that this could save one > object allocation since we can not use byte[] directly as CHM's key. But we > all know that CHM is faster than CSLM, so I wonder if it worth to use CSLM > instead of CHM only because one extra object allocation. > Then I wrote a simple jmh micro benchmark to test the performance of CHM and > CSLM. The code could be found here > https://github.com/Apache9/microbench > It turns out that CHM is still much faster than CSLM with one extra object > allocation. > So I think we should always use CHM if we do not need the keys to be sorted. -- This message was sent by Atlassian JIRA (v6.3.4#6332)