directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <>
Subject Re: [MINA] What about a cluster for network load balancing?
Date Sat, 07 Jan 2006 18:36:09 GMT

"Alex Karasulu" <> wrote:

> That's neat experiment.  I'd be interested in seeing a simple application 
> and some performance metrics.  I think TCP based protocols would most 
> benefit from this.

As I said I have implemented yet a server that use this kind of work, and I 
can give you the performance of my server right now:
I'm running only a single mina program as network-farm (i've called this 
program "dislocator", and that protocol "dislocation protocol"), but the 
results are impressive:
BandWidth Speed (out): 2,46 Kb/s

BandWidth Speed (in): 1,23 Kb/s

BandWidth Speed (total): 3,70 Kb/s

theese up are the bandwidth usages of the thinking-block

and theese down are the bandwidth usages of my single dislocator:
Users: 1160 ReadBand: 22,68 Kb/s writeBand: 377,96 Kb/s

You can see that there are 1160 users connected to this MINAs dislocator, so 
many many messages that must be sent to all users (it's a p2p protocol, they 
are the search messages) are sent from thinking-block to the network-farm 
only once, than my single dislocator duplicate it 1160 times and resend it 
over all the sockets.

You can see that it work well because this 
"must-to-be-sent-equal-to-all-the-users" messages are the higher part of the 

> I think TCP based protocols would most benefit from this.

I agree, actually I've developed it for tcp only, but also UDP can work fine 
in this way.

> It sounds very interesting.  As with many ideas things come down to doing 
> some experimentation and testing out the theory.  I know that for example 
> SEDA sounds great on paper but can create so many headaches in practice.

Well, I've thought a lot about that project, and I know that it has a 
principal limitation: it can work fine only for protocol that have a poor 
CPU usage for protocol elaboration (the network load is divide between many 
jvms, but all the CPU work is done by the thinking-block), and that it can 
work well only for protocol like hubs, in wich a message must to be sent 
over many sockets, or must to be sent the same many times equal (in this 
case the an adaptive Huffman encode should be fine)

Every kind of protocol that do not have theese features will not have any 
bandwidth advantage from that system, but this kind of protocols are the 
most diffused chat - gaming - p2p protocols.

View raw message