Claims
- 1. A method for load balancing a plurality of servers comprising:
intercepting a request from a requestor client forming part of a client group for a service provided by the plurality of servers; determining wait times for servicing prior requests from at least one member client of the client group by at least one of the plurality of servers; and selecting an execution server from among the plurality of servers for responding to the request dynamically based on a computation of the wait times.
- 2. The method of claim 1, wherein said request is intercepted and said execution server is selected by a load balancing agent executing on one of said plurality of servers.
- 3. The method of claim 1 further comprising:
tagging said request with a client group identifier at an access point shared by said client group; wherein said wait times are determined based on said client group identifier.
- 4. The method of claim 3 further comprising:
tagging said request with a user identifier at said access point; wherein said wait times are determined based on said user identifier.
- 5. The method of claim 3 further comprising:
tagging said request with an access network identifier at said access point; wherein said wait times are determined based on said access network identifier.
- 6. The method of claim 1, wherein said computation comprises at least one of a mean of said wait times and a variance of said wait times.
- 7. The method of claim 6 wherein said execution server has the lowest mean of said wait times from among said plurality of servers.
- 8. The method of claim 6 wherein said execution server has the lowest variance of said wait times from among said plurality of servers.
- 9. The method of claim 1, wherein said wait times include communication times and service times, further comprising:
determining an overload of said execution server using a mean and a variance of said communication times and said service times.
- 10. The method of claim 1 further comprising recovering from a failure of said execution server by re-selecting a new execution server based on said computation of the wait times.
- 11. The method of claim 2 further comprising recovering from a failure of said load balancing agent using a group membership protocol.
- 12. A system for load balancing a plurality of servers comprising:
a client group including at least one client operable to generate a request for a service provided by the plurality of servers; a memory for storing record of wait times for servicing prior requests from said client group by at least one of the plurality of servers; and a load balancing agent executing on one of the plurality of servers capable of intercepting the request and selecting an execution server from among the plurality of servers for responding to the request dynamically based on a computation of the wait times.
- 13. The system of claim 12 further comprising an access point connected with said client group and a network, said network interconnecting said plurality of servers and said access point, said access point operable to tag said request with a client group identifier.
- 14. The system of claim 13, wherein said access point is further operable to tag said request with at least one of a user identifier and an access network identifier.
- 15. The system of claim 12, wherein said computation comprises at least one of a mean of said wait times and a variance of said wait times.
- 16. The system of claim 15 wherein said execution server has the lowest mean of said wait times from among said plurality of servers.
- 17. The system of claim 15 wherein said execution server has the lowest variance of said wait times from among said plurality of servers.
- 18. The system of claim 12, wherein said wait times include communication times and service times, and said load balancing agent is further operable to determine an overload of said execution server using a mean and a variance of said communication times and said service times.
- 19. The system of claim 12 wherein said load balancing agent is further operable to recover from a failure of said execution server by re-selecting a new execution server based on said computation of the wait times.
- 20. The system of claim 12 further comprising a group membership protocol for recovering from a failure of said load balancing agent.
- 21. The system of claim 12, wherein said memory is located on said one of the plurality of servers capable of intercepting the request and selecting an execution server from among the plurality of servers for responding to the request dynamically based on a computation of the wait times.
RELATED APPLICATION
[0001] This application is related to application Ser. No. 10/179,910, Attorney Docket No. 10745/125, filed Jun. 24, 2002, entitled “Method and System for Application Load Balancing,” naming as inventors Nayeem Islam and Shahid Shoaib.