From: Paul Ferraro [mailto:firstname.lastname@example.org]
> I understand mod_cluster can distribute load across several
> This seems great for load balancing incoming requests, but I'm looking
> a solution to load balance internal system processes.
> Say I have a cluster of 4 nodes, monitoring 400 hosts and updating a
> central database with the statistics.
> So as a general rule, the system should
> - Balance so each node would monitor ~100 hosts.
> - Take each node load into consideration during load balance
> - Prefer some affinity/stickiness
> - Balance itself when a node goes down/up
> So all very similar to mod_cluster, only I'd like to balance internal
> work, rather than incoming requests.
> is this something mod_cluster could help with?
mod_cluster, in its present form, won't be much use here - though the
concepts are similar.
The above seems like it could be implemented fairly easily using JBoss
clustering. You would implement your workload manager as an HASingleton
(i.e. so that only 1 node in your cluster will assume this
responsibility at any given time). The singleton master would
periodically send rpcs to each slave node which would respond with their
"load", however you want to represent this. The
DynamicLoadBalanceFactoryProvider from the mod_cluster code base could
be reused here (i.e. calculating a single time decayed value from
disparate load metrics). The singleton master can respond to view
changes, and inform slave nodes via rpc of new/changed workload. It
does not seem like this would be terribly complicated.
If this is the route you want to take, you can direct any questions
regarding JBoss clustering to the appropriate forum.
[IH] Thanks for the reply
Sounds like HASingleton would allow only a single node to run the load, but
I would like each node to monitor ~100 hosts out of the 400 (and if that
node fails, the other nodes should pick them up)?