Adaptive recovery from system failure for application instances that govern message transactions
First Claim
1. In a computing system that includes one or more processors, persistent memory configured to store information that persists through power loss of the computing system, and system memory that may be directly accessed by the one or more processors, a method for recovering from a system failure, the method comprising 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.
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
13 Claims
-
1. In a computing system that includes one or more processors, persistent memory configured to store information that persists through power loss of the computing system, and system memory that may be directly accessed by the one or more processors, a method for recovering from a system failure, the method comprising 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.
-
-
2. In a computing system that includes one or more processors, persistent memory configured to store information that persists through power loss of the computing system, and system memory that may be directly accessed by the one or more processors, a method for recovering from a system failure, the method comprising 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 (3, 4, 5)
-
-
6. In a computing system that includes one or more processors, persistent memory configured to store information that persists through power loss of the computing system, and system memory that may be directly accessed by the one or more processors, a method for recovering from a system failure, the method comprising 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.
-
-
7. A computer program product for use in a computing system that includes one or more processors, persistent memory configured to store information that persists through power loss of the computing system, and system memory that may more directly accessed by the one or more processors, a computer program product for implementing a method for recovering from a system failure, the computer program product comprising one or more recordable-type computer-readable storage media having thereon computer-executable instructions that, when executing by the one or more processors, cause the computing system to perform the following:
-
an act of detecting receipt of a message corresponding to a particular message transaction that follows 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 computer-executable instructions for performing the act of determining from the state information whether or not the processing instance associated with the particular message transaction is in recovery mode comprise computer-executable instructions that, when executed by the one or more processors, cause the computing system to perform the following; an act of determining that the processing instance is in recovery mode; wherein the computer-executable instructions for performing the act of branching process flow depending on whether or not the processing instance is in recovery mode comprise computer-executable instructions that, when executed by the one or more processors, cause the computing system to perform the following; an act of executing recovery code; and wherein the computer-executable instructions for perform the act of executing of the recover code comprise computer-executable instructions that, when executed by the one or more processors, cause the computing system to perform 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.
-
-
8. A computer program product for use in a computing system that includes one or more processors, persistent memory configured to store information that persists through power loss of the computing system, and system memory that may more directly accessed by the one or more processors, a computer program product for implementing a method for recovering from a system failure, the computer program product comprising one or more recordable-type computer-readable storage media having thereon computer-executable instructions that, when executing by the one or more processors, cause the computing system to perform the following:
-
an act of detecting receipt of a message corresponding to a particular message transaction that follows 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 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 one or more computer-readable media further having thereon computer-executable instructions that, when executed by the one or more processors, cause the computing system to perform the following; an act of detecting receipt of a second message of a second message exchange pattern; 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 computer program product for use in a computing system that includes one or more processors, persistent memory configured to store information that persists through power loss of the computing system, and system memory that may more directly accessed by the one or more processors, a computer program product for implementing a method for recovering from a system failure, the computer program product comprising one or more recordable-type computer-readable storage media having thereon computer-executable instructions that, when executing by the one or more processors, cause the computing system to perform the following:
-
an act of detecting receipt of a message corresponding to a particular message transaction that follows 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 one or more computer-readable media further have thereon computer-executable instructions that, when executed by the one or more processors, cause the computing system to further perform the following; 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 computer program product for use in a computing system that includes one or more processors, persistent memory configured to store information that persists through power loss of the computing system, and system memory that may more directly accessed by the one or more processors, a computer program product for comprising one or more recordable-type computer-readable storage media having thereon computer-executable instructions that, when executing 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