[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