[infinispan-dev] Concurrent hashmaps parameters

Bela Ban bban at redhat.com
Tue Sep 15 11:59:32 EDT 2009


FYI,

This might be important for you guys as well (if you haven't done so): 
I'll add code to configure ConcurrentHashMaps based on system 
properties, e.g. capacity, load factory etc.

This will be important for large clusters. E.g. when we have 1000 nodes 
in the cluster, most hashmaps in JGroups will contain 1000 entries, and 
if we only have 16 buckets (the default IIRC), there would be a lot of 
contention.


https://jira.jboss.org/jira/browse/JGRP-1049

ConcurrentHashMap
-----------------

CCHMs have a default initial capacity (16), load factor (0.75) and 
concurrency level (16). These are OK for most
scenarios, but we have to investigate whether these values are 
sufficient for 1000 node clusters.

When for example 1000 threads from different senders access the same 
CCHM, we need to make sure we don't have high
contention, ie. by spreading a 1000 senders over 16 buckets.

Investigate whether we should add CCHM initial sizes, load factors and 
concurrency levels as properties.

With ergonomics [1], we could for example set bucket sizes for CCHMs 
dynamically, e.g. based on cluster size.



[1] https://jira.jboss.org/jira/browse/JGRP-1037

-- 
Bela Ban
Lead JGroups / Clustering Team
JBoss




More information about the infinispan-dev mailing list