Duo Zhang created HBASE-16278:
---------------------------------

             Summary: Use ConcurrentHashMap instead of ConcurrentSkipListMap if 
possible
                 Key: HBASE-16278
                 URL: https://issues.apache.org/jira/browse/HBASE-16278
             Project: HBase
          Issue Type: Bug
            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)

Reply via email to