Hardware load-balancing apparatus for session replication
First Claim
1. A system for replicating information in a client session, comprising:
- a plurality of servers;
a primary server in said plurality of servers, said primary server storing session information for a client session;
a secondary server in said plurality of servers, said secondary server storing session information for the client session; and
a hardware load balancer receiving a request from a client, the request containing identification information particularly identifying said primary and secondary servers, the hardware load balancer attempts to serve the request on the primary server, and when the primary server is unable to receive or respond to the request, the hardware load balancer then selects a new primary server and serves the request on the new primary server instead of using the secondary server, session information is sent from the secondary server to the new primary server, the new primary server then responds to the request and sends updated session information to the secondary server so that the new primary server and secondary server are in sync with regard to that session, the request from the client being sent before a determination that the primary server is unable to receive or respond to requests;
wherein the selection of the new primary server is automatic and not in response to administrator input;
wherein a change in session information is associated with a version number, the primary and secondary servers modify the session information if the primary and secondary servers receive a request that has a version number higher than a version number that the primary and secondary servers are currently storing;
wherein the primary and secondary servers periodically check each other to ensure that they are both on the same version number;
wherein, when the version numbers are out of synchronization between the primary and secondary servers, the primary server sends information to the secondary server to bring the session back into synchronization; and
wherein the system further comprises a cookie adapted to be stored on the client and to contain the identification information for the new primary and secondary servers, wherein the cookie contains a number that is the sum of a number for the new primary server and a number for the secondary server.
3 Assignments
0 Petitions
Accused Products
Abstract
A session replication system provides real-time data replication without unnecessarily slowing down the user experience. A system in accordance with the present invention may utilize a primary server to serve requests from a network client, as well as a secondary server to replicate the session information. When a request is received on the session, an attempt may be made to serve the request on the primary server. If the primary is unable to receive or respond to the request, the request may be served on the secondary server or on a new primary server. If the secondary server receives the request, the secondary server may become the new primary server. If a new primary server is selected, the new primary may request the session information from the secondary server.
147 Citations
12 Claims
-
1. A system for replicating information in a client session, comprising:
-
a plurality of servers; a primary server in said plurality of servers, said primary server storing session information for a client session; a secondary server in said plurality of servers, said secondary server storing session information for the client session; and a hardware load balancer receiving a request from a client, the request containing identification information particularly identifying said primary and secondary servers, the hardware load balancer attempts to serve the request on the primary server, and when the primary server is unable to receive or respond to the request, the hardware load balancer then selects a new primary server and serves the request on the new primary server instead of using the secondary server, session information is sent from the secondary server to the new primary server, the new primary server then responds to the request and sends updated session information to the secondary server so that the new primary server and secondary server are in sync with regard to that session, the request from the client being sent before a determination that the primary server is unable to receive or respond to requests; wherein the selection of the new primary server is automatic and not in response to administrator input; wherein a change in session information is associated with a version number, the primary and secondary servers modify the session information if the primary and secondary servers receive a request that has a version number higher than a version number that the primary and secondary servers are currently storing; wherein the primary and secondary servers periodically check each other to ensure that they are both on the same version number; wherein, when the version numbers are out of synchronization between the primary and secondary servers, the primary server sends information to the secondary server to bring the session back into synchronization; and wherein the system further comprises a cookie adapted to be stored on the client and to contain the identification information for the new primary and secondary servers, wherein the cookie contains a number that is the sum of a number for the new primary server and a number for the secondary server. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for providing redundancy in a client session, comprising:
-
making a load balancing decision for an initial request from a client in a client session in order to select a primary server from a plurality of servers, the load balancing decision being made using an algorithm in a hardware load balancer, selecting a secondary server; sending session information for a client session from the primary server to the secondary server receiving an additional request from the client, the additional request particularly identifying the primary and secondary server; and when the primary server is unable to receive or respond to the additional request, selecting a new primary server and sending the additional request on the new primary server instead of using the secondary server, session information is sent from the secondary server to the new primary server, the new primary server then responds to the request and sends updated session information to the secondary server so that the new primary server and secondary server are in sync with regard to the client session, the additional request from the client being sent before a determination that the primary server is unable to receive or respond to requests; wherein the selection of the new primary server is automatic and not in response to administrator input; wherein a change in session information is associated with a version number, the primary and secondary servers modify the session information if the primary and secondary server receives a request that has a version number higher than a version number that the primary and secondary servers are currently storing; wherein the primary and secondary servers periodically check each other to ensure that they are both on the same version number; wherein, when the version numbers are out of synchronization between the primary and secondary servers, the primary server sends information to the secondary server to bring the session back into synchronization; and wherein the method further comprises adding an identification number for the new primary server and an identification number for the secondary server to obtain one number that describes both the new primary and secondary servers. - View Dependent Claims (7, 8, 9, 10, 11, 12)
-
Specification