System and method for supporting lazy deserialization of session information in a server cluster
First Claim
1. A system for supporting lazy deserialization of session information in a server cluster, the system comprising:
- a server cluster executing on one or more microprocessors, wherein the server cluster includes a plurality of application server instances, wherein one or more of the plurality of application server instances are assigned to a preferred replication group;
a web server and a proxy application running thereon, wherein the proxy application maintains information of the plurality of application server instances, and directs a request from a client to a particular application server instance, wherein the particular application server instance operates as a primary application server instance tostore a session associated with the client, andselect a secondary application server instance from the remaining application server instances in the server cluster,wherein the selection of the secondary application server instance is based at least on whether the secondary application server instance is in the preferred replication group that does not include the primary application server instance;
wherein the proxy application on the web server instructs the client to write a cookie configured to store location information of the primary application server instance and location information of the secondary application server instance;
wherein the secondary application server instance operates to store a serialized copy of the session in a byte array on the secondary application server instance, detect that one or more entries in the byte array are affected by a particular session update received from the primary application server instance, and, update the one or more affected entries in the byte array on the secondary application server instance;
wherein, in the event of a failure of the primary application server instance, the proxy application on the web server uses the location information stored in the cookie to locate the secondary application server instance, obtains a session state from the secondary application server instance through deserializing the updated serialized session, and responds to additional requests from the client based on the session state;
wherein the secondary application server instance subsequently operates as a new primary application server instance, and selects a new secondary application server instance from the plurality of application server instances in the server cluster; and
wherein the proxy application on the web server updates the cookie with location information of the new primary application server and location information of the new secondary application server.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method can support in-memory session replication in a server cluster using a lazy deserialization approach. The server cluster can include a primary application server and a secondary application server. The primary application server operates to receive a request associated with a session from a client and maintains session information associated with the session. Based on the session information, the primary application server can responds to the client. The secondary application server operates to receive and maintain serialized session information from the primary application server. The secondary application server operates to update the serialized session information based on one or more session updates received from the primary application server. When the primary application server fails, the secondary application server can generate deserialized session information based on the updated serialized session information and responds to the client.
102 Citations
20 Claims
-
1. A system for supporting lazy deserialization of session information in a server cluster, the system comprising:
-
a server cluster executing on one or more microprocessors, wherein the server cluster includes a plurality of application server instances, wherein one or more of the plurality of application server instances are assigned to a preferred replication group; a web server and a proxy application running thereon, wherein the proxy application maintains information of the plurality of application server instances, and directs a request from a client to a particular application server instance, wherein the particular application server instance operates as a primary application server instance to store a session associated with the client, and select a secondary application server instance from the remaining application server instances in the server cluster, wherein the selection of the secondary application server instance is based at least on whether the secondary application server instance is in the preferred replication group that does not include the primary application server instance; wherein the proxy application on the web server instructs the client to write a cookie configured to store location information of the primary application server instance and location information of the secondary application server instance; wherein the secondary application server instance operates to store a serialized copy of the session in a byte array on the secondary application server instance, detect that one or more entries in the byte array are affected by a particular session update received from the primary application server instance, and, update the one or more affected entries in the byte array on the secondary application server instance; wherein, in the event of a failure of the primary application server instance, the proxy application on the web server uses the location information stored in the cookie to locate the secondary application server instance, obtains a session state from the secondary application server instance through deserializing the updated serialized session, and responds to additional requests from the client based on the session state; wherein the secondary application server instance subsequently operates as a new primary application server instance, and selects a new secondary application server instance from the plurality of application server instances in the server cluster; and wherein the proxy application on the web server updates the cookie with location information of the new primary application server and location information of the new secondary application server. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for supporting lazy deserialization of session information in a server cluster, comprising:
-
configuring a server cluster that includes a plurality of application server instances, wherein one or more of the plurality of application server instances are assigned to a preferred replication group; configuring a web server and a proxy application running thereon, wherein the proxy application maintains information of the plurality of application server instances, and directs a request from a client to a particular application server instance, wherein the particular application server instance operates as a primary application server instance to store a session associated with the client; selecting, from the remaining application server instances in the server cluster, a secondary application server instance for storing a copy of the session received from the primary application server, based at least on whether the secondary application server instance is in the preferred replication group that does not include the primary application server instance, wherein the secondary application server operates to store a serialized copy of the session received from the primary application server instance in a byte array on the secondary application server instance, detect that one or more entries in the byte array are affected by a particular session update received from the primary application server instance, and update the one or more affected entries in the byte array on the secondary application server instance; and instructing, by the proxy application on the web server, the client to write a cookie configured to store location information of the primary application server instance and location information of the secondary application server instance; detecting a failure of the primary application server instance by the proxy application on the web server; and using the location information stored in the cookie to locate the secondary application server instance, obtains a session state from the secondary application server instance through deserializing the updated serialized session, and responds to additional requests from the client based on the session state; wherein the secondary application server instance subsequently operates as a new primary application server instance, and selects a new secondary application server instance from the plurality of application server instances in the server cluster; and wherein the proxy application on the web server updates the cookie with location information of the new primary application server and location information of the new secondary application server. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable storage medium including instructions stored thereon which, when executed by a computer, cause the computer to perform the steps comprising:
-
configuring a server cluster that includes a plurality of application server instances, wherein one or more of the plurality of application server instances are assigned to a preferred replication group; configuring a web server and a proxy application running thereon, wherein the proxy application maintains information of the plurality of application server instances, and directs a request from a client to a particular application server instance, wherein the particular application server instance operates as a primary application server instance to store a session associated with the client; selecting, from the remaining application server instances in the server cluster, a secondary application server instance for storing a copy of the session received from the primary application server, based at least on whether the secondary application server instance is in the preferred replication group that does not include the primary application server instance, wherein the secondary application server operates to store a serialized copy of the session received from the primary application server instance in a byte array on the secondary application server instance, detect that one or more entries in the byte array are affected by a particular session update received from the primary application server instance, and update the one or more affected entries in the byte array on the secondary application server instance; and instructing, by the proxy application on the web server, the client to write a cookie configured to store location information of the primary application server instance and location information of the secondary application server instance; detecting a failure of the primary application server instance by the proxy application on the web server; and using the location information stored in the cookie to locate the secondary application server instance, obtains a session state from the secondary application server instance through deserializing the updated serialized session, and responds to additional requests from the client based on the session state; wherein the secondary application server instance subsequently operates as a new primary application server instance, and selects a new secondary application server instance from the plurality of application server instances in the server cluster; and wherein the proxy application on the web server updates the cookie with location information of the new primary application server and location information of the new secondary application server. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification