Distributed scalable device for selecting a server from a server cluster and a switched path to the selected server
First Claim
1. A method for selecting a server from a cluster of servers and a switched path to the selected server in a client-server system including a switched network, said method comprising the steps of:
- receiving a client request at a forwarding engine (FE) from a client;
routing a server selection request by the FE to a control engine (CE) for selecting a server from the cluster of servers and a corresponding switched address for the server in response to receiving the client request;
selecting a server from the cluster of servers by the CE based on server selection criteria and communicating a corresponding switched address to the FE in response to the server selection request;
establishing a switched connection by the FE from the client to the selected server utilizing the corresponding switched address communicated by the CE; and
forwarding by the FE data associated with the client request to the selected server over the established switched connection associated with the switched address without having the switched connection traverse the CE, wherein the FE is enabled to perform routing of a subsequent client request independently of the CE by one of;
utilizing the established switched connection, and establishing a new switched connection based on a server selection criteria.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for building scaleable TCP/IP services such as a cluster web server out of a switch or switched network such as an ATM switch or ATM switched network. For example, a distributed large scale TCP router can be built using an ATM switch network. The scaled services can be presented as a single service to clients. The scaleable services can balance the load on the individual servers in the cluster. The clients can be directly or indirectly connected to the switch or switched network. One version includes two separate components: a Control Engine (CE); and a Forwarding Engine (FE). The Control Engine is in charge of assigning a connection to a server and forwarding information about the assigned server and connection to the Forwarding Engine. The Forwarding Engine applies the assignments received from the Control Engine to map a TCP connection onto a switched ATM connection. At the end, the Forwarding Engine communicates the connection termination event back to the Control Engine. A preferred embodiment takes advantage of the switched nature of ATM networks to shortcut paths from clients to servers, wherever possible. Using ATM shortcuts can increase performance by several order of magnitude, while providing efficient distribution of the load balancing function.
-
Citations
26 Claims
-
1. A method for selecting a server from a cluster of servers and a switched path to the selected server in a client-server system including a switched network, said method comprising the steps of:
-
receiving a client request at a forwarding engine (FE) from a client;
routing a server selection request by the FE to a control engine (CE) for selecting a server from the cluster of servers and a corresponding switched address for the server in response to receiving the client request;
selecting a server from the cluster of servers by the CE based on server selection criteria and communicating a corresponding switched address to the FE in response to the server selection request;
establishing a switched connection by the FE from the client to the selected server utilizing the corresponding switched address communicated by the CE; and
forwarding by the FE data associated with the client request to the selected server over the established switched connection associated with the switched address without having the switched connection traverse the CE, wherein the FE is enabled to perform routing of a subsequent client request independently of the CE by one of;
utilizing the established switched connection, and establishing a new switched connection based on a server selection criteria.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
determining if there is an existing switched connection associated with the subsequent client request; and
forwarding the request over the existing switched connection if there is an existing switched connection associated the subsequent client request, and locally selecting a server from said cluster of servers based on the server selection criteria and establishing a new switched connection and forwarding the subsequent client request over the new switched connection if there is no existing switched connection associated with the subsequent client request.
-
-
4. The method of claim 3, wherein the step of establishing the switched connection further comprises the step of:
mapping a TCP connection onto a switched ATM connection based on the switched address.
-
5. The method of claim 4, further comprising the steps of:
-
providing a plurality of FEs that are remote to the CE and distributing the FEs to the edge of the switched network; and
distributing TCP connections by each of said plurality of FEs under a direction of the CE.
-
-
6. The method of claim 4, further comprising the steps of:
-
providing a plurality of distributed FEs connected to the CE via a switch fabric; and
mapping switched connections by each of said plurality of distributed FEs under the direction of the CE.
-
-
7. The method of claim 1, including a primary CE and a backup CE in the event that the primary CE fails, the method further comprising the steps of:
-
detecting the primary CE failing; and
taking over for the primary CE by the backup CE and informing the FE that it is a new primary CE, in response to said detecting step.
-
-
8. The method of claim 1, including a plurality of FEs, the method further comprising the steps of:
-
using configuration information to configure one or more backup FEs that could be selected if a primary FE fails, in response to a client request; and
routing data to a backup FE without interrupting active client connections if the primary FE fails.
-
-
9. The method of claim 8, further comprising the steps of:
-
determining that a failed FE is recovered and updating the recovered FE; and
updating the network such that new requests are routed to the recovered FE and re-routing packets for existing connections to the recovered FE as the primary FE, without interruption to clients.
-
-
10. The method of claim 1, wherein a client is directly attached to the switched network and the client includes the FE.
-
11. The method of claim 1, wherein a client is attached to the switched network via an Internet.
-
12. The method of claim 1, wherein the CE further communicates to the FE a configurable function and additional data for retaining and utilizing a switched address that has become idle for subsequent client requests.
-
13. A system for selecting a server from a cluster of servers and a switched path to the selected server in a client-server system including a switched network, said system comprising:
-
a forwarding engine (FE) for receiving a client request and routing a server selection request to a control engine (CE) for selecting a server from the cluster of servers and a corresponding switched address in response to the client request;
the CE including a means for selecting a server from the cluster of servers based on server selection criteria and a means for communicating a corresponding switched address to the FE in response to the server selection request;
the FE including means for establishing a switched connection from the client to the selected server utilizing the corresponding switched address communicated by the CE; and
the FE including a means for forwarding data associated with the client request to the selected server over the established switched connection associated with the switched address without having the switched connection traverse the CE, wherein the FE is enabled to perform routing of a subsequent client request independently of the CE by one of;
utilizing the established switched connection, and establishing a new switched connection based on a server selection criteria.- View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
a means for determining if there is an existing switched connection associated with the subsequent client request received at the FE; and
a means for forwarding the request over the existing switched connection if there is an existing connection, and locally selecting a server from the cluster of servers based on the server selection criteria and establishing a new switched connection and forwarding the subsequent client request over the new switched connection if there is no existing switched connection associated with the subsequent client request.
-
-
16. The system of claim 15, wherein the means for establishing the switched connection further comprises:
a means for mapping a TCP connection onto a switched ATM connection based on the switched address.
-
17. The system of claim 16, further comprising a plurality of FEs that are distributed remotely to the CE at the edge of the switched network, wherein each of said plurality of FEs distributes TCP connections under the direction of the CE.
-
18. The system of claim 16, further comprising a plurality of distributed FEs connected to the CE via a switch fabric, wherein each of said distributed FEs maps switched connections under the direction of the CE.
-
19. The system of claim 18 wherein the FEs, CE and switch fabric are co-located in a single apparatus.
-
20. The system of claim 13, including a primary CE and a backup CE in the event that the primary CE fails, the system further comprising:
-
a means for detecting the primary CE failing; and
a CE means for taking over for the failing primary CE by the backup CE and informing the FE that it is a new primary CE, in response to said detecting step.
-
-
21. The system of claim 13, including a plurality of FEs, the system further comprising:
-
a means for using configuration information available in the network to configure one or more backup FEs that could be selected if a primary FE fails, in response to the client request; and
a means for routing data to a backup FE without interrupting active client connections if the primary FE fails.
-
-
22. The system of claim 21, further comprising:
-
a means for determining that a failed FE is recovered and updating the recovered FE; and
a means for updating the network such that new requests are routed to the recovered FE and re-routing packets for existing connections to the recovered FE as the primary FE, without interruption to clients.
-
-
23. The system of claim 13, wherein a client is directly attached to the switched network and the client includes the FE.
-
24. The system of claim 13, wherein a client is attached to the switched network via an Internet.
-
25. The system of claim 13, wherein the server is attachable via a routed network.
-
26. The system of claim 13, wherein the CE further comprises a means to communicate to the FE a configurable function and additional data for retaining and utilizing a switched address that has become idle for subsequent client requests.
Specification