ADAPTIVE RECOVERY FROM SYSTEM FAILURE FOR APPLICATION INSTANCES THAT GOVERN MESSAGE TRANSACTIONS
First Claim
1. A computing system comprising:
- one or more processors;
persistent memory configured to store information that persists through power loss of the computing system; and
system memory that is directly accessible by the one or more processors, the system memory containing computer-executable instructions for implementing a method of recovering from a system failure, wherein the method includes the following;
an act of maintaining state information for each of multiple message transactions, each state information having recovery mode information indicating whether or not the corresponding processing instance is in recovery mode or normal mode;
an act of receiving a message corresponding to a particular message transaction following a message exchange pattern;
an act of loading state information for the message transaction from persistent memory to system memory in response to having received the message;
an act of determining from the state information whether or not the processing instance associated with the particular message transaction is in recovery mode; and
an act of branching process flow for the processing instance associated with the particular message transaction depending on whether or not the processing instance is in recovery mode.
4 Assignments
0 Petitions
Accused Products
Abstract
Mechanisms for adaptively entering and exiting recovery mode. When a message is received from a particular message transaction, the appropriate processing instance is loaded from persistent memory to system memory. The processing instance then determines from its own state information whether or not it is in recovery mode. This indication of recovery or normal mode may be set by a system-wide recovery detection module. If the processing instance determines that it is in normal mode, then the processing instance executes code appropriate for normal operation without needing to execute any recovery code at all. If, on the other hand, the processing instance determines that it is in recovery mode, then it executes recovery code. Once the recovery code has completed successfully, the processing instance may then cause its own normal mode.
-
Citations
14 Claims
-
1. A computing system comprising:
-
one or more processors;
persistent memory configured to store information that persists through power loss of the computing system; and
system memory that is directly accessible by the one or more processors, the system memory containing computer-executable instructions for implementing a method of recovering from a system failure, wherein the method includes the following;
an act of maintaining state information for each of multiple message transactions, each state information having recovery mode information indicating whether or not the corresponding processing instance is in recovery mode or normal mode;
an act of receiving a message corresponding to a particular message transaction following a message exchange pattern;
an act of loading state information for the message transaction from persistent memory to system memory in response to having received the message;
an act of determining from the state information whether or not the processing instance associated with the particular message transaction is in recovery mode; and
an act of branching process flow for the processing instance associated with the particular message transaction depending on whether or not the processing instance is in recovery mode. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computing system comprising:
-
one or more processors;
persistent memory configured to store information that persists through power loss of the computing system; and
system memory that is directly accessible by the one or more processors, the system memory containing computer-executable instructions for implementing a method of recovering from a system failure, wherein the method includes the following;
an act of receiving a message corresponding to a particular message transaction following a message exchange pattern;
an act of loading state information for the message transaction from persistent memory to system memory in response to having received the message;
an act of determining from the state information whether or not the processing instance associated with the particular message transaction is in recovery mode;
an act of branching process flow depending on whether or not the processing instance is in recovery mode; and
wherein the message is a first message, the message transaction is a first message transaction, the processing instance is a first processing instance, and the state information is first state information, the method further comprising the following;
an act of receiving a second message of a second message transaction;
an act of loading second state information for the second message transaction from persistent memory to system memory in response to having received the second message; and
an act of determining from the second state information whether or not the processing instance associated with the second message is in recovery mode. - View Dependent Claims (9, 10, 11)
-
-
12. A computing system comprising:
-
one or more processors;
persistent memory configured to store information that persists through power loss of the computing system; and
system memory that is directly accessible by the one or more processors, the system memory containing computer-executable instructions for implementing a method of recovering from a system failure, wherein the method includes the following;
an act of receiving a message corresponding to a particular message transaction following a message exchange pattern;
an act of loading state information for the message transaction from persistent memory to system memory in response to having received the message;
an act of determining from the state information whether or not the processing instance associated with the particular message transaction is in recovery mode;
an act of branching process flow depending on whether or not the processing instance is in recovery mode;
an act of identifying a plurality of processing instances that were running at the time of a system failure; and
an act of indicating in state information associated with each of the identified plurality of processing instances that the corresponding processing instance is in recovery mode, wherein the plurality of processing instances includes the processing instance.
-
-
13. A computing system comprising:
-
one or more processors;
persistent memory configured to store information that persists through power loss of the computing system; and
system memory that is directly accessible by the one or more processors, the system memory containing computer-executable instructions for implementing a method of recovering from a system failure, wherein the method includes the following;
an act of receiving a message corresponding to a particular message transaction following a message exchange pattern;
an act of loading state information for the message transaction from persistent memory to system memory in response to having received the message;
an act of determining from the state information whether or not the processing instance associated with the particular message transaction is in recovery mode; and
an act of branching process flow depending on whether or not the processing instance is in recovery mode;
wherein the act of determining from the state information whether or not the processing instance associated with the particular message transaction is in recovery mode comprises an act of determining that the processing instance is in recovery mode;
wherein the act of branching process flow depending on whether or not the processing instance is in recovery mode comprises an act of executing recovery code; and
wherein the act of executing of the recover code comprises the following;
an act of beginning execution of the recovery code;
an act of determining that further communication is needed in order to fully recover;
an act of storing the state information for the processing instance back into persistent memory upon determining that further communication is needed in order to fully recover;
an act of receiving a second message;
an act of reloading the state information from persistent memory to system memory in response to having received the second message;
an act of continuing execution of the recovery code upon reloading the state information.
-
-
14. A computing system comprising:
-
one or more processors;
persistent memory configured to store information that persists through power loss of the computing system; and
system memory that is directly accessible by the one or more processors, the system memory containing computer-executable instructions which, when executed by the one or more processors, cause the computing system to instantiate in the system memory the following;
a plurality of processing instances, each associated with a particular message transaction, each processing instance being configured to load state information for the message transaction from persistent memory to system memory in response to having received a message for the message transaction, determine from the state information whether or not the processing instance associated with the particular message transaction is in recovery mode, and branch process flow depending on whether or not the processing instance is in recovery mode; and
a recovery detection component configured to identify the plurality of processing instances as running at the time of a system failure; and
indicating in state information associated with each of the identified plurality of processing instances that the corresponding processing instance is in recovery mode.
-
Specification