Maintaining HTTP session affinity in a cluster environment
First Claim
Patent Images
1. A method for controlling communications between a client and a cluster of servers, comprising:
- conducting a first communication session over a network between the client and a selected one of the servers in the cluster;
updating a value of a version-validity counter so as to identify a current version of session data in a cache held by the selected one of the servers;
sending identifying data generated responsive to the first communication session together with the updated value of the counter over the network for storage by the client;
receiving a request from the client to conduct a second communication session, the request comprising the identifying data; and
routing the request to the selected server responsive to the identifying data in the request; and
receiving the routed request at the server and comparing a first value of the version-validity counter comprised in the request from the client to a second value of the version-validity counter held by the server so as to determine whether to use the session data in the cache in the second communication session.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for controlling communications between a client and a cluster of servers includes conducting a first communication session over a network between the client and a selected one of the servers in the cluster, and sending identifying data generated responsive to the first communication session over the network for storage by the client. Upon receiving a request from the client to conduct a second communication session, the request comprising the identifying data, the request is routed to the selected server responsive to the identifying data in the request.
163 Citations
24 Claims
-
1. A method for controlling communications between a client and a cluster of servers, comprising:
-
conducting a first communication session over a network between the client and a selected one of the servers in the cluster; updating a value of a version-validity counter so as to identify a current version of session data in a cache held by the selected one of the servers; sending identifying data generated responsive to the first communication session together with the updated value of the counter over the network for storage by the client; receiving a request from the client to conduct a second communication session, the request comprising the identifying data; and routing the request to the selected server responsive to the identifying data in the request; and receiving the routed request at the server and comparing a first value of the version-validity counter comprised in the request from the client to a second value of the version-validity counter held by the server so as to determine whether to use the session data in the cache in the second communication session. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. Network server apparatus, comprising:
-
a cluster of servers, coupled to communicate with a client over a network, and operative, responsive to a first communication session conducted between the client and a selected one of the servers in the cluster, to send identifying data generated responsive to the first communication session over the network for storage by the client, wherein the selected one of the servers comprises a cache, and wherein the identifying data sent to the client comprise a value of a version-validity counter, which is updated by the selected one of the servers so as to identify a current version of session data in the cache; and a router, coupled to receive a request from the client to conduct a second communication session, the request comprising the identifying data, and to route the request to the selected server responsive to the identifying data in the request, wherein the selected server compares a first value of the version-validity counter comprised in the request from the client to a second value of the version-validity counter held by the server so as to determine whether to use the session data in the cache in the second communication session. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
- 23. A computer software product for controlling communications between a client and a cluster of servers, the product comprising a computer-readable medium in which program instructions are stored, which instructions, when read by a selected one of the servers, cause the server to conduct a first communication session over a network with the client and to update a value of a version-validity counter so as to identify a current version of session data in a cache held by the server, and to send identifying data generated responsive to the first communication session together with the updated value of the counter over the network for storage by the client, so that when a request comprising the identifying data is received at the cluster from the client to conduct a second communication session, the request is routed to the selected server responsive to the identifying data in the request, and the server, upon receiving the routed request, compares a first value of the version-validity counter comprised in the request from the client to a second value of the version-validity counter held by the server so as to determine whether to use the session data in the cache in the second communication session.
Specification