[jgroups-dev] 2.12.0.Alpha2 released

Bela Ban <[email protected]> Thu, 23 Dec 2010 10:27:45 +0100
Newsgroups gmane.comp.java.javagroups.devel,gmane.comp.java.javagroups.general
Message-ID <[email protected]>
FYI,

I just uploaded 2.12.0.Alpha2 to Sourceforge, download it from [2].

This version contains new code which makes the retransmission table in 
NAKACK smaller and faster. A retransmission table contains sequence 
numbers (seqnos) and messages, and enforces correct delivery order and 
retransmissions if messages are missing.

I used HashMap before (and before that a ConcurrentHashMap), which has a 
lot of overhead (roughly 2 pointers and 2 longs for every value), and it 
also grows but never shrinks back. For instance, if we have 1 million 
messages in the retransmit table, but then this drops down to a few 
hundred, we still have a large number of buckets in HashMap, which never 
get de-allocated.

RetransmitTable [3] is implemented using a matrix. Every get or 
put/remove costs only 2 array accesses, so it is very fast. It also uses 
way less memory, ca 30% less than HashMap.  RetransmitTable also purges 
removed elements and compacts itself, either periodically, or when 
reaching a certain size, or on command (e.g. via JMX).

More details on the implementation are discussed on the case [1].

I ran perf.Test on my home cluster, consisting of 4 quad core servers 
connected to a GB switch. For 1 million 1K messages, I got
- old code: 132MByte/sec/node
- with JGRP-1133: 143MByte/sec/node, this is ca 8% faster

I'm curious what effect this will have on larger clusters (say 30 
nodes)... more on this later !
Enjoy,


[1] https://issues.jboss.org/browse/JGRP-1133
[2] https://sourceforge.net/projects/javagroups/files/JGroups/2.12.0.Alpha2/
[3] 
https://github.com/belaban/JGroups/blob/master/src/org/jgroups/util/RetransmitTable.java

-- 
Bela Ban
Lead JGroups / Clustering Team
JBoss

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Javagroups-development mailing list