Distributed request routing
First Claim
1. A method for processing requests such that request processing is load-distributed among a plurality of servers, the method comprising the steps of:
- receiving a request at a first server, the request being forwarded at random to the first server by any of the plurality of servers, if overloaded, comparing a current load of the first server to the current load of a second of the servers wherein the second server is predetermined to the first server, and if the load of the first server exceeds the load of the second server, forwarding the request to the second server for processing.
10 Assignments
0 Petitions
Accused Products
Abstract
A plurality of servers for processing client requests forward the requests among themselves to achieve a balanced load. When a server initially receives a client request, it randomly selects another of the plurality of servers, referred to as a first-chance server, and forwards the request to this server. Upon receiving the request, the first-chance server determines if it is overloaded and if not, processes the request. However, if overloaded, the first-chance server compares its load to the load of one or more predetermined next-neighbor servers. If the next-neighbor server(s) are more loaded than the first-chance server, the first-chance server processes the request. Otherwise, the first-chance server forwards the request to the least loaded next-neighbor server. The next-neighbor receiving the request either processes it directly, or alternatively, based on its current load and that of its next-neighbor server(s), forwards the request to another next-neighbor server for processing.
139 Citations
18 Claims
-
1. A method for processing requests such that request processing is load-distributed among a plurality of servers, the method comprising the steps of:
-
receiving a request at a first server, the request being forwarded at random to the first server by any of the plurality of servers, if overloaded, comparing a current load of the first server to the current load of a second of the servers wherein the second server is predetermined to the first server, and if the load of the first server exceeds the load of the second server, forwarding the request to the second server for processing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for processing requests such that request processing is load-distributed among a plurality of servers, the method comprising the steps of:
-
receiving a request at a first-chance server, the request being forwarded at random to the first-chance server by any of the plurality of servers, if not overloaded, processing the request, if overloaded, comparing the first-chance server'"'"'s current load to a current load of at least two other servers wherein the at least two other servers are predetermined to the first-chance server, and if the load of the first-chance server exceeds the load of any of the at least two other servers, forwarding the request to one of the at least two other servers for processing. - View Dependent Claims (11, 12, 13)
-
-
14. A method for processing client requests such that the request processing is load distributed among a plurality of servers, said method comprising the steps of:
-
receiving a client request at a first server, randomly selecting a second server from the plurality of servers and forwarding the client request from the first server to the second server, if the second server is overloaded, comparing the second server'"'"'s current load to a current load of a first neighbor server wherein the first neighbor server is predetermined to the second server, and if the load of the second server exceeds the load of the first neighbor server, forwarding the client request to the first neighbor server and the first neighbor server processing the client request. - View Dependent Claims (15, 16, 17, 18)
-
Specification