Session handling based on shared session information
First Claim
Patent Images
1. An apparatus comprising:
- a request/response shared memory to support request/response data transfers to each of multiple first worker nodes of a first software suite and multiple second worker nodes of a second software suite, any given request/response data transfer being to a determined one of the multiple first worker nodes or the multiple second worker nodes, each second worker node having its own associated virtual machine, wherein each of the virtual machines does not have visibility into local memories of the other virtual machines;
a first dispatcher associated with the first software suite;
a second dispatcher associated with the second software suite;
a connection manager coupled in communication with the request/response shared memory, wherein the connection manager is configured to receive a request for a session, to determine whether the request should be handled by the first or the second software suite, to deposit the request in the request/response shared memory where the worker node of the determined first or second software suite can retrieve and process the request and write the response into in the request/response shared memory, and to forward a request notification to a respective determined one of the first dispatcher and the second dispatcher, which identifies which first worker node of the multiple first worker nodes or which second worker node of the multiple second worker nodes, respectively, is to handle the request;
a shared closure shared memory that contains objects that can be accessed by more than one virtual machine, wherein one or more objects are grouped in a closure, which is a group of one or more objects where every reference stemming from an object in the group which references another object does not reference an object outside the group; and
a session table shared memory configured to store a session table storing high level session state information pertaining to flow management of a request/response pair rather than pertaining to a request'"'"'s substantive response, wherein each second worker node is configured to access and update an entry in the session table with information about a session, including a reference to the respective second worker, as well as to allocate and initialize an entry for a new session in the session table and, upon termination or failure of the session, to clean up bindings to the worker node and free the session in the session table, and wherein the connection manager is configured to access and update the entry in the session table with information about the session.
1 Assignment
0 Petitions
Accused Products
Abstract
A connection manager and worker nodes of an application server are both capable to access and control a shared memory session table.
72 Citations
11 Claims
-
1. An apparatus comprising:
-
a request/response shared memory to support request/response data transfers to each of multiple first worker nodes of a first software suite and multiple second worker nodes of a second software suite, any given request/response data transfer being to a determined one of the multiple first worker nodes or the multiple second worker nodes, each second worker node having its own associated virtual machine, wherein each of the virtual machines does not have visibility into local memories of the other virtual machines; a first dispatcher associated with the first software suite; a second dispatcher associated with the second software suite; a connection manager coupled in communication with the request/response shared memory, wherein the connection manager is configured to receive a request for a session, to determine whether the request should be handled by the first or the second software suite, to deposit the request in the request/response shared memory where the worker node of the determined first or second software suite can retrieve and process the request and write the response into in the request/response shared memory, and to forward a request notification to a respective determined one of the first dispatcher and the second dispatcher, which identifies which first worker node of the multiple first worker nodes or which second worker node of the multiple second worker nodes, respectively, is to handle the request; a shared closure shared memory that contains objects that can be accessed by more than one virtual machine, wherein one or more objects are grouped in a closure, which is a group of one or more objects where every reference stemming from an object in the group which references another object does not reference an object outside the group; and a session table shared memory configured to store a session table storing high level session state information pertaining to flow management of a request/response pair rather than pertaining to a request'"'"'s substantive response, wherein each second worker node is configured to access and update an entry in the session table with information about a session, including a reference to the respective second worker, as well as to allocate and initialize an entry for a new session in the session table and, upon termination or failure of the session, to clean up bindings to the worker node and free the session in the session table, and wherein the connection manager is configured to access and update the entry in the session table with information about the session. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
-
providing a request/response shared memory to support request/response data transfers to each of multiple first worker nodes of a first software suite and multiple second worker nodes of a second software suite, any given request/response data transfer being to a determined one of the multiple first worker nodes or the multiple second worker nodes; receiving, at a connection manager coupled in communication with the request/response shared memory, requests for one or more sessions; determining, for each request, whether the request should be handled by the first or the second software suite, wherein, for at least some of the requests, it is determined that they should be handled by the second software suite; depositing the requests in the request/response shared memory; forwarding for each request, by the connection manager, a request notification to a determined one of a first dispatcher of the first software suite or a second dispatcher of the second software suite; identifying for each request, by the determined one of the first dispatcher or the second dispatcher, which first worker node of the multiple first worker nodes or which second worker node of the multiple second worker nodes, respectively, should handle the request; retrieving each request from the request/response shared memory and processing the request at the respective identified worker node of the determined first or second software suite; writing the responses into in the request/response shared memory; and for each of the requests to be handled by the second software suite, by the respective identified second worker node, accessing and updating an entry in a session table stored in a session table shared memory with information about the respective session, and, by the respective identified second worker node, upon termination or failure of the session, cleaning up bindings to the worker node and freeing the session in the session table, wherein the session table stores high level session state information pertaining to flow management of a request/response pair rather than pertaining to a request'"'"'s substantive response and wherein the information about the session comprises a reference to the selected second worker node; associating to each second worker node a virtual machine, wherein each of the virtual machines does not have visibility into local memories of the other virtual machines; and providing a shared closure shared memory that contains objects that can be accessed by-more than one virtual machine, wherein one or more objects are grouped in a closure, which is a group of one or more objects. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A non-transitory machine-readable medium storing instructions that, when executed by a processor, cause the processor to:
-
receive, at a connection manager coupled in communication with a request/response shared memory for supporting request/response data transfers, requests for one or more sessions; determine, for each request, whether the request should be handled by a first or a second software suite, wherein, for at least some of the requests, it is determined that they should be handled by the second software suite; deposit the requests in the request/response shared memory; forward for each request, by the connection manager, a request notification to a determined one of a first dispatcher of the first software suite or a second dispatcher of the second software suite; identify for each request, by the determined one of the first dispatcher or the second dispatcher, which first worker node of multiple first worker nodes of the first software suite or which second worker node of multiple second worker nodes of the second software suite, respectively, should handle the request; retrieve each request from the request/response shared memory and process the request at the respective identified worker node of the determined first or second software suite; write the responses into in the request/response shared memory; and for each of the requests to be handled by the second software suite, by the respective identified second worker node, access and update an entry in a session table stored in a session table shared memory with information about the respective session, and, by the identified worker node, upon termination or failure of the session, cleaning up bindings to the worker node and freeing the session in the session table, wherein the session table stores high level session state information pertaining to flow management of a request/response pair rather than pertaining to a request'"'"'s substantive response and wherein the information about the session comprises a reference to the selected second worker node; associating to each second worker node a virtual machine, wherein each of the virtual machines does not have visibility into local memories of the other virtual machines; and providing a shared closure shared memory that contains objects that can be accessed by-more than one virtual machine, wherein one or more objects are grouped in a closure, which is a group of one or more objects.
-
Specification