Method and apparatus for maintaining session affinity across multiple server groups
First Claim
1. A method of maintaining session affinity in a server farm coupled to receive client requests, said server farm comprising multiple server groups, each server group comprising multiple clone servers, said method comprising the steps of:
- (1) associating a collection of related client requests with a unique session identification code;
(2) responsive to receipt of a client request, determining to which of said server groups said client request can be dispatched;
(3) associating with said collection of requests sharing a session identification code a list of every server in said server farm that has serviced a request in said collection;
(4) responsive to receipt of a client request, determining if said list associated with said collection of requests to which said request belongs includes a server identification code that matches a server identification code of a server in said determined server group; and
(5) if a match is detected, dispatching said client request to said matched server.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention is a method and apparatus for maintaining session affinity within a server farm when requests sharing a session ID switch between server groups or between server clones in a single server group. In accordance with the invention, client requests include a list of clone identification codes, each code uniquely identifying a clone within a server group for handling the request. The clone identification code may be appended to a session identification code. For each different server that handles a request in a session, a new clone identification code is appended without deleting or overwriting any previously appended clone identification codes. When a request is received, the list of clone identification codes associated with the request is parsed in a predetermined order to search for the first clone identification code that matches one of the clone identification codes of a server in the appropriate server group. If a match is detected, the request is dispatched to that clone. If no match is found, the request is dispatched to a server clone in the server group using any reasonable Work Load Management (WLM) mechanism and then the clone identification code of the selected clone is added to the list.
155 Citations
29 Claims
-
1. A method of maintaining session affinity in a server farm coupled to receive client requests, said server farm comprising multiple server groups, each server group comprising multiple clone servers, said method comprising the steps of:
-
(1) associating a collection of related client requests with a unique session identification code;
(2) responsive to receipt of a client request, determining to which of said server groups said client request can be dispatched;
(3) associating with said collection of requests sharing a session identification code a list of every server in said server farm that has serviced a request in said collection;
(4) responsive to receipt of a client request, determining if said list associated with said collection of requests to which said request belongs includes a server identification code that matches a server identification code of a server in said determined server group; and
(5) if a match is detected, dispatching said client request to said matched server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
16. A computer readable product embodied on computer readable media readable by a computing device, said product for maintaining session affinity in a server farm coupled to receive client requests, said server farm comprising multiple server groups, each server group comprising multiple server clones, said computer program product comprising computer executable instructions for:
-
associating a collection of related client requests with a unique session identification code;
responsive to receipt of a client request, determining to which of said server groups said client request can be dispatched;
associating with said collection of requests sharing a session identification code a list of every server in said server farm that has serviced a request in said collection;
responsive to receipt of a client request, determining if said list associated with said collection of requests to which said request belongs includes a server identification code that matches a server identification code of a server in said determined server group; and
if a match is detected, dispatching said client request to said matched server.
-
Specification