System for distributing load over multiple servers at an internet site
First Claim
1. A system for distributing connections from clients on an external network to a plurality of servers on an internal network, the system comprising:
- a client interface to the external network, the client interface being operative to receive and send packets to and from a remote client;
a server interface to the internal network, the server interface being operative to receive and send packets to and from a plurality of servers, the plurality of servers being operative to establish a connection with the remote client and the system being configured to monitor connections established between the plurality of servers and clients on the external network;
a plurality of predicted responsiveness indicators, each of the plurality of predictive responsiveness indicators being associated with at least one of the plurality of servers, the predicted responsiveness indicators being operative to predict the response time of each of the plurality of servers based at least in part on a previous time stamp of a response time measurement, a current time stamp, and an aging factor applied to a difference between the previous time stamp and the current time stamp gathered at the system in the course of monitoring connections established between the plurality of servers and clients on the external network, the predicted response time for each of the plurality of servers being a function of the number of client connections to a particular server, the predicted responsiveness indicators being stored within the system in a manner that the predicted responsiveness indicators may be accessed; and
a predicted responsiveness comparator which is operative to access and compare the predicted responsiveness indicators and to determine which servers from among the plurality of servers is associated with a predicted responsiveness indicator which measures a best predicted response time, the predicted responsiveness comparator being further operative to select a pointer to a server which has a predicted responsiveness that is the best predicted responsiveness among the predicted responsiveness of the plurality of servers;
whereby the server which has a predicted responsiveness which is the best predicted responsiveness is selected to handle the next connection from a client.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a system and method for distributing connections among a plurality of servers at an Internet site. All connections are made to a single IP address and a local director selects the server from among the plurality of servers which is to receive the connection. Thus, the DNS server is not relied upon to distribute connections, and the connection distribution scheme is not avoided when DNS is bypassed. In one embodiment, a session distribution scheme is implemented such that connections are distributed to the server in the group of servers which has the fewest connections of the group. In other embodiments, other session distribution schemes which route connections based on the predicted response times of the servers or according to a round robin scheme are used.
-
Citations
12 Claims
-
1. A system for distributing connections from clients on an external network to a plurality of servers on an internal network, the system comprising:
-
a client interface to the external network, the client interface being operative to receive and send packets to and from a remote client; a server interface to the internal network, the server interface being operative to receive and send packets to and from a plurality of servers, the plurality of servers being operative to establish a connection with the remote client and the system being configured to monitor connections established between the plurality of servers and clients on the external network; a plurality of predicted responsiveness indicators, each of the plurality of predictive responsiveness indicators being associated with at least one of the plurality of servers, the predicted responsiveness indicators being operative to predict the response time of each of the plurality of servers based at least in part on a previous time stamp of a response time measurement, a current time stamp, and an aging factor applied to a difference between the previous time stamp and the current time stamp gathered at the system in the course of monitoring connections established between the plurality of servers and clients on the external network, the predicted response time for each of the plurality of servers being a function of the number of client connections to a particular server, the predicted responsiveness indicators being stored within the system in a manner that the predicted responsiveness indicators may be accessed; and a predicted responsiveness comparator which is operative to access and compare the predicted responsiveness indicators and to determine which servers from among the plurality of servers is associated with a predicted responsiveness indicator which measures a best predicted response time, the predicted responsiveness comparator being further operative to select a pointer to a server which has a predicted responsiveness that is the best predicted responsiveness among the predicted responsiveness of the plurality of servers; whereby the server which has a predicted responsiveness which is the best predicted responsiveness is selected to handle the next connection from a client. - View Dependent Claims (2, 3, 4)
-
-
5. A system for distributing connections from clients on an external network to a plurality of servers on an internal network, the system comprising:
-
means for receiving and sending packets to and from a remote client; means for receiving and sending packets to and from a plurality of servers, the plurality of servers being operative to establish a connection with the remote client; means for monitoring connections established between the plurality of servers and clients on the external network, the means for monitoring connections comprising means for gathering response time data at the system in the course of monitoring connections between the plurality of servers and clients on the external network; means for predicting the response time of each of the plurality of servers based at least in part on a previous time stamp of a response time measurement, a current time stamp, and an aging factor applied to a difference between the previous time stamp and the current time stamp gathered at the system in the course of monitoring connections established between the plurality of servers and clients on the external network, the predicted response time for each of the plurality of servers being a function of the number of client connections to a particular server; and means for comparing the predicted response time of each of the plurality of servers to select a pointer to a server which has a best predicted response time of the plurality of servers; whereby the server that has the best predicted response time is selected to handle the next connection from a client. - View Dependent Claims (6, 7, 8, 10, 11, 12)
-
-
9. A method for distributing connections from clients on an external network to a plurality of servers on an internal network, the method comprising:
-
receiving and sending packets to and from a remote client; receiving and sending packets to and from a plurality of servers, the plurality of servers being operative to establish a connection with the remote client; monitoring connections established between the plurality of servers and clients on the external network, the means for monitoring connections comprising means for gathering response time data at the system in the course of monitoring connections between the plurality of servers and clients on the external network; predicting the response time of each of the plurality of servers based at least in part on a previous time stamp of a response time measurement, a current time stamp, and an aging factor applied to a difference between the previous time stamp and the current time stamp gathered at the system in the course of monitoring connections established between the plurality of servers and clients on the external network, the predicted response time for each of the plurality of servers being a function of the number of client connections to a particular server; and means for comparing the predicted response time of each of the plurality of servers to select a pointer to a server which has a best predicted response time of the plurality of servers; whereby the server that has the best predicted response time is selected to handle the next connection from a client.
-
Specification