Hi Azeez, your explanations sounds reasonable to me. I also like the idea of renaming your proposal from intelligentLoadbalance to something like dynamicLoadbalance as this describes the way in which the actual members of the LB group are discovered. The algorithm is responsible for the actual distribution of the load (currently only roundRobin in Synapse, but his can be improved). Regarding some improvents to current loadbalancing I wrote a mail to the list some time back early this month: http://mail-archives.apache.org/mod_mbox/synapse-dev/200806.mbox/[EMAIL PROTECTED] It would be interesting for me to hear what you think about this as well, and how this may interfere with your planned improvements.I don't think there is much overlapping, but I maybe wrong. Regards, Eric
________________________________ Von: Afkham Azeez [mailto:[EMAIL PROTECTED] Gesendet: Fr 13.06.2008 07:28 An: [email protected] Betreff: Re: Intelligent Synapse Load Balancer Paul, I have planned this for a future iteration. This is actually a different load balancing algorithm, where if a perceived load of a node is high, we abstain from sending further requests to it until it recovers. We should be able to plug this into the currently available LB or the new LB I'm writing. I have also planned to dynamically fire-up new application nodes when the load increases. I guess the term intelligent LB may be misleading and a better term would be dynamic LB or HA LB. So indeed, we can abstract away the idea of "which systems are available and how much load can they accept" into the LB algorithm, which is consistent with the current design and implementation. <sequence name="main" onError="errorHandler"> <in> <send> <endpoint> <intelligentLoadbalance failover="true" algorithm="intelligent"/> </endpoint> </send> <drop/> </in> <out> <send/> </out> </sequence> Thanks Azeez On Fri, Jun 13, 2008 at 3:34 AM, Paul Fremantle <[EMAIL PROTECTED]> wrote: Azeez I guess I'm probably misunderstanding your proposal. I have a feeling that what you are proposing supports what I want, but maybe in a slightly different syntax and model. Maybe if I explain what I'm thinking you can map what you are proposing onto it and then I'll understand it better. My understanding of how intelligent load balancers communicate with endpoints is that there is usually some form of plugpoint that allows the loadbalancer to know which endpoints are available and in what proportion to send requests to those endpoints. So for example, the load balancer may call an API: EndpointReport getEndpoints("serviceX"); where EndpointReport will be a map of endpoints and a weighting: { "192.168.2.1 <http://192.168.2.1/> " -> 65% "192.168.2.2 <http://192.168.2.2/> " -> 35% } Typically underneath this API is some kind of information gathering system. There are three usual systems: (1) access to the application running on the endpoint (so this corresponds to getting information directly from the Axis2 group communications), (2) running an OS-level agent on the system that monitors CPU, Memory and IO, or (3) pinging systems and seeing how fast they respond. So I guess I'm thinking that this abstraction should not assume there is a group communication system but simply abstract away the idea of "which systems are available and how much load can they accept". Paul
<<winmail.dat>>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
