Controlled server loading using L4 dispatching
First Claim
1. A server for providing data to clients, the server comprising:
- an OSI layer 4 dispatcher having a queue for storing connection requests received from clients; and
at least one back-end server;
wherein the dispatcher stores in the queue one or more of the connection requests received from clients when the back-end server is unavailable to process said one or more connection requests;
wherein the dispatcher retrieves said one or more connection requests from the queue for forwarding to the back-end server when the back-end server becomes available to process said one or more connection requests; and
wherein the dispatcher determines whether the back-end server is available to process said one or more connection requests by comparing a number of connections concurrently supported by the back-end server to a maximum number of concurrent connections that the back-end server is permitted to support, the maximum number being less than a maximum number of connections which the back-end server is capable of supporting concurrently.
1 Assignment
0 Petitions
Accused Products
Abstract
Standalone and cluster-based servers, including Web servers, control the amount of data processed concurrently by such servers to thereby control server operating performance. A dispatcher is preferably interposed between clients and one or more back-end servers, and preferably monitors the performance of each back-end server (either directly or otherwise). For each back-end server, the dispatcher preferably also controls, in response to the monitored performance, either or both the number of concurrently processed data requests and the number of concurrently supported connections to thereby control the back-end servers'"'"' performance. In one embodiment, the dispatcher uses a packet capture library for capturing packets at OSI layer 2 and implements a simplified TCP/IP protocol in user-space (vs. kernel space) to reduce data copying. Commercially off-the-shelf (COTS) hardware and operating system software are preferably employed to take advantage of their price-to-performance ratio.
79 Citations
28 Claims
-
1. A server for providing data to clients, the server comprising:
-
an OSI layer 4 dispatcher having a queue for storing connection requests received from clients; and
at least one back-end server;
wherein the dispatcher stores in the queue one or more of the connection requests received from clients when the back-end server is unavailable to process said one or more connection requests;
wherein the dispatcher retrieves said one or more connection requests from the queue for forwarding to the back-end server when the back-end server becomes available to process said one or more connection requests; and
wherein the dispatcher determines whether the back-end server is available to process said one or more connection requests by comparing a number of connections concurrently supported by the back-end server to a maximum number of concurrent connections that the back-end server is permitted to support, the maximum number being less than a maximum number of connections which the back-end server is capable of supporting concurrently. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for controlled server loading, the method comprising:
-
receiving a plurality of connection requests from clients;
establishing, in response to some of the connection requests, a number of concurrent connections between a server and clients; and
storing at least one of the connection requests until one of the established connections is terminated. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21)
-
-
16. A method for controlled server loading, the method comprising:
-
defining a maximum number of concurrent connections that a server is permitted to support;
monitoring the server'"'"'s performance; and
dynamically adjusting the maximum number in response to the monitoring to thereby adjust the server'"'"'s performance.
-
-
22. A method for controlled loading of a cluster-based server, the cluster-based server including a dispatcher and a plurality of back-end servers, the method comprising:
-
receiving at the dispatcher a plurality of connection requests from clients;
forwarding a plurality of the connection requests to each of the back-end servers, each back-end server establishing a number of concurrent connections with clients in response to the connection requests forwarded thereto; and
storing at the dispatcher at least one of the connection requests until one of the concurrent connections is terminated. - View Dependent Claims (23, 24, 26, 27, 28)
-
-
25. A method for controlled loading of a cluster-based server, the cluster-based server including a dispatcher and a plurality of back-end servers, the method comprising:
-
defining, for each back-end server, a maximum number of concurrent connections that can be supported;
monitoring the performance of each back-end server; and
dynamically adjusting the maximum number for at least one of the back-end servers in response to the monitoring to thereby adjust the performance of the cluster-based server.
-
Specification