System and Method for Multi-Layer Distributed Switching
A system and method for multi-layer distributed switching is disclosed. In one embodiment, the distributed switching system comprises an external network connection connected to a plurality of computing nodes such that data signals can be sent to and from the computing nodes. An incoming director module is associated with a first computing node and associates a data signal with a second computing node. There is a request distribution network for distributing data signals among the nodes, a response generator module, and an outgoing director module associated with the second computing node.
1 . A distributed switching system comprising:
a plurality of computing nodes operably connected to a first external network connection, wherein data signals can be sent to and from the computing nodes;
a first one of the computing nodes comprising an incoming director module associated with a virtual address, the incoming director module operable to associate a data signal received via the first external network connect with a second one of the computing nodes, wherein the received data signal can be sent between the first computing node and the second computer node via a request distribution channel; and
a response generator module operable to generate a response data signal responsive to the received data signal;
wherein the second computing node comprises an outgoing director module, the outgoing director module operable to associate the response data signal with the virtual address.
2 . The system of claim 1 wherein the response generator module is associated with the second computer node.
3 . The system of claim 1 wherein the response generator module is associated with a third computer node.
4 . The system of claim 1 wherein the system further comprises a heartbeat channel between the plurality of computer nodes.
5 . The system of claim 1 further comprising a second external network connection.
6 . The system of claim 5 wherein received data signals are received using the first external network connection and response data signals are sent using the second external network connection.
7 . The system of claim 1 further comprising a second incoming director module associated with the second computer node.
8 . The system of claim 7 wherein the second incoming director module is used if the incoming director module associated with the first computer node is unavailable.
9 . A method for distributed switching in a cluster system comprising:
responsive to the receipt of a request addressed to a virtual address, evaluating the request on a first computing node;
modifying the request on the first computing node to associate it with a second computing node;
sending the request to the second computing node;
generating a response at the second computing node;
modifying the response to associate the response with the virtual address; and
sending the response;
wherein the modifying the response does not occur on the first computing node.
10 . The method of claim 9 further comprising, subsequent to evaluating the request at the first computing node, making a routing decision at the first computing node.
11 . The method of claim 9 wherein the modifying the response occurs at the second computing node.
12 . The method of claim 9 wherein the modifying the response occurs at a third computing node.
13 . The method of claim 9 further comprising exchanging heartbeat messages between the first and second computing nodes.
14 . The method of claim 9 further comprising switching the functions of the first computing node to the second computing node and switching the functions of the second computing node to a third computing node if the first computing node is unavailable.
15 . The method of claim 9 further comprising switching the functions of the second computing node to a third computing node if the second computing node is unavailable.
16 . A computer program product comprising computer-interpretable instructions on computer-readable media in a cluster system, which when executed:
responsive to the receipt of a request addressed to a virtual address, evaluate the request associated with a first computing node;
modifying the request associated with the first computing node to associate it with a second computing node;
sending the request to the second computing node;
generate a response at the second computing node;
modifying the response to associate the response with the virtual address; and
send the response;
wherein the modifying the response does not occur on the first computing node.
17 . The computer program product of claim 16 wherein the response is modified on the second computing node.
18 . The computer program product of claim 16 wherein the response is modified on a third computing node.
19 . The computer program product of claim 16 , further comprising instructions that substitute a third computing node for the second computing node if the second computing node is unavailable.
20 . The computer program product of claim 16 , further comprising instructions that substitute the second computing node for the first computing node and a third computing node for the second computing node if the first computing node is unavailable.