Process transfer between servers
AssigneeRed Hat, Inc.
InventorsFilip Eliá{hacek over (s)}, Filip Nguyen
Life of this patent
Estimating the term…
Abstract
According to one example, a method performed by a computing system includes, with a first server, receiving a process request, starting processing of the process request, prior to completing the processing of the process request, storing objects associated with a thread of the process request in an object database that is accessible by the second server, storing thread metadata for the thread of the process request in a metadata database that is accessible by the second server, and sending a transfer request to a switching manager, the transfer request being to request that the process request be shifted to the second server.
Claims15
A method performed by a computing system, the method comprising:
- with a first server, receiving a process request;
- starting processing of the process request, the starting including a switching manager sending the processing request to the first server, wherein the switching manager monitors the status of a set of servers within a cluster;
- prior to completing the processing of the process request:
- storing objects associated with a thread of the process request in an object database that is accessible by a second server, the object database being different than the second server;
- storing thread metadata for the thread of the process request in a metadata database that is accessible by the second server, the storing thread metadata being performed by the first server, wherein the thread metadata includes a program counter, a stack, and a stack frame for the thread, wherein the object database and the metadata database are hierarchical structures that include data for the set of servers within the cluster;
- and
- after storing the thread metadata, sending a transfer request from the first server to the switching manager, the transfer request being to request that the process request be shifted from the first server to the second server, wherein storing the objects, storing the thread metadata, and sending the transfer request is in response to determining that the second server is closer to a resource that is utilized by the process request.
A method performed by a server, the method comprising:
- receiving, from a switching manager, a transfer request to continue processing of a process request that has been started and not completed by another server, wherein the switching manager monitors the status of a set of servers within a cluster, wherein the server is selected to continue processing the process request based on a proximity to a resource utilized by the process request;
- loading, from a periodically updated metadata database, thread metadata associated with each thread of the process request, the thread metadata being stored in the metadata database by the other server, wherein the thread metadata is updated before receiving the transfer request, wherein the thread metadata includes a program counter, a stack, and a stack frame for the thread,;
- loading, from a periodically updated object database, objects associated with each thread of the process request, the objects being stored in the object database by the other server during the processing of the process request, the object database being different than the server, wherein the object database and the metadata database are hierarchical structures that include data for the set of servers within the cluster;
- and
- continuing processing of the process request.
A system comprising:
- a switching manager;
- an object database;
- a metadata database;
- and
- a plurality of servers within a cluster, each of the servers comprising:
- a processor;
- and
- a memory comprising machine readable instructions that when executed by the processor, cause the server to:
- receive from the switching manager, a transfer request to execute a process request, wherein the switching manager monitors the status of a set of servers within a cluster;
- store objects associated with a thread of the process request in the object database, the object database being accessible by the plurality of servers, the object database being different than the plurality of servers;
- and
- store thread metadata for the thread of the process request in the metadata database, the metadata database being accessible by the plurality of servers, the storing thread metadata being performed by a server, wherein the thread metadata includes a program counter, a stack, and a stack frame for the thread, wherein the object database and the metadata database are hierarchical structures that include data for the set of servers within the cluster;
- and
- wherein, in response to an event that occurs after the storing thread metadata, the switching manager is to cause the process request to be shifted to another one of the plurality of servers, wherein the event comprises instructions from a first one of the plurality of servers to switch execution of the process request to another one of the plurality of servers, wherein storing the objects, storing the thread metadata, and the event is in response to determining that the another one of the plurality of servers is closer to a resource that is utilized by the process request.
Dependencies are inferred from the claim text.