New flow control protocols

Bela Ban <[email protected]>
Newsgroups gmane.comp.java.javagroups.general,gmane.comp.java.javagroups.devel
Message-ID <[email protected]>
FYI,

I've added 2 new flow control protocols: MFC (Multicast Flow Control) 
and UFC (Unicast Flow Control). They're an implementation of [1], which 
is about splitting the FC functionality into 2 separate protocols.

The advantages are that this simplifies the code, the code becomes more 
maintainable, that we can enable unicast or multicast flow control 
individually, that I could remove some coarse grained locking, and that 
I created helper classes, e.g. to manage sender or receiver credits, 
which can be unit tested individually, apart from the use in the protocol.

The downside is that we now have MFC and UFC instead of just FC.

My goal for performance was that MFC and UFC should be about the same as 
FC, but not slower.

This morning, I ran a quick perf test [2] on a 4 node cluster, with 4 
nodes (all senders) sending 1 million messages (of varying size) each. 
The numbers are MiBs/sec/node.

The numbers for 4 nodes are:

Size   FC    MFC/UFC

1K    135      135
2K    145      145
4K    145      145
8K    130      131


The numbers for 8 nodes are (2 processes per physical box):

Size   FC    MFC/UFC

1K     72       73
2K     83       85
4K     87       93
8K    107      113


As can be seen, performance is about the same, or even slightly better 
with MFC/UFC when running 2 perf JVMs / physical box. However, the 
second test on 8 nodes is to be taken with a grain of salt, as the 2 
JBMs/box are competing for CPU and the network, and therefore we don't 
saturate the network (bandwidth)...

To use the new folw control protocols, replace

<FC max_credits="2M" min_threshold="0.6" />

with

<UFC max_credits="2M" min_threshold="0.6" />
<MFC max_credits="2M" min_threshold="0.6" />

I will change the configs shipped with JGroups after some more testing 
and updating the documentation.


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

[2] http://community.jboss.org/docs/DOC-11594

-- 
Bela Ban
Lead JGroups / Clustering Team
JBoss


------------------------------------------------------------------------------
Automate Storage Tiering Simply
Optimize IT performance and efficiency through flexible, powerful, 
automated storage tiering capabilities. View this brief to learn how
you can reduce costs and improve performance. 
http://p.sf.net/sfu/dell-sfdev2dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.