[infinispan-dev] CHM or CHMv8?

Manik Surtani msurtani at redhat.com
Thu Apr 18 22:35:53 EDT 2013


Guys,  

Based on some recent micro benchmarks I've been doing, I've seen:

MapStressTest configuration: capacity 100000, test running time 60 seconds
Testing mixed read/write performance with capacity 100,000, keys 300,000, concurrency level 32, threads 12, read:write ratio 0:1
Container CHM           Ops/s 21,165,771.67  Gets/s       0.00  Puts/s 21,165,771.67  HitRatio     100.00  Size    262,682  stdDev 77,540.73
Container CHMV8         Ops/s 33,513,807.09  Gets/s       0.00  Puts/s 33,513,807.09  HitRatio     100.00  Size    262,682  stdDev 77,540.73

So under high concurrency (12 threads, on my workstation with 12 hardware threads - so all threads are always working), we see that Infinispan's CHMv8 implementation is 50% faster than JDK6's CHM implementation when doing puts.

We use a fair number of CHMs all over Infinispan's codebase.  By default, these are all JDK-provided CHMs.  But we have the option to switch to our CHMv8 implementation by passing in -Dinfinispan.unsafe.allow_jdk8_chm=true.  

The question is, should this be the default?  Thoughts, opinions?

- M

--
Manik Surtani
manik at jboss.org
twitter.com/maniksurtani

Platform Architect, JBoss Data Grid
http://red.ht/data-grid




More information about the infinispan-dev mailing list