Persistent stateful component-based applications via automatic recovery
First Claim
1. A method of providing transparent recovery of stateful piece-wise deterministic (PWD) components having a component state in a computer system, comprising:
- intercepting events comprising at least one of a plurality of method calls, component activations, and component deactivations;
logging the events during execution of the components;
detecting a failure of one of the components based on an error detected during execution;
replaying the logged events to recover the component state;
reading the log via a recovery manager and replaying the logged events;
re-executing the component between logged events; and
communicating to other recovery managers and to an error handler new information about a logical component.
2 Assignments
0 Petitions
Accused Products
Abstract
Persistent components are provided across both process and server failures, without the application programmer needing take actions for component recoverability. Application interactions with a stateful component are transparently intercepted and stably logged to persistent storage. A “virtual” component isolates an application from component failures, permitting the mapping of a component to an arbitrary “physical” component. Component failures are detected and masked from the application. A virtual component is re-mapped to a new physical component, and the operations required to recreate a component and reinstall state up to the point of the last logged interaction is replayed from the log automatically.
-
Citations
7 Claims
-
1. A method of providing transparent recovery of stateful piece-wise deterministic (PWD) components having a component state in a computer system, comprising:
-
intercepting events comprising at least one of a plurality of method calls, component activations, and component deactivations;
logging the events during execution of the components;
detecting a failure of one of the components based on an error detected during execution;
replaying the logged events to recover the component state;
reading the log via a recovery manager and replaying the logged events;
re-executing the component between logged events; and
communicating to other recovery managers and to an error handler new information about a logical component.
-
-
2. A method of providing transparent recovery of stateful piece-wise deterministic (PWD) components having a component state in a computer system, comprising:
-
intercepting events comprising at least one of a plurality of method calls, component activations, and component deactivations;
logging the events during execution of the components;
detecting a failure of one of the components based on an error detected during execution, wherein the computer system comprises a client and a server, and detecting the failure of the component comprises the client or server detecting the failure, and further comprises a component runtime associated with the client invoking an error handler associated with the client and providing information related to the failed call to the error handler;
identifying a recovery manager responsible for the component and passing the information to the recovery manager; and
replaying the logged events to recover the component state;
wherein the component has an initial interface pointer and a logical ID, and replaying the at least one call to recover the component comprises;
the recovery manager recreating the component based on information in a storage log;
providing an interface pointer to the re-created component, the interface pointer different from the initial interface pointer; and
providing the logical ID to the re-created component.
-
-
3. A system for providing recovery in a computer system, comprising:
-
a first system comprising;
a first storage device that comprises information associated with at least one call and a component, a first component runtime that detects a failure of the component based on an error during processing of one of the at least one call and retrieves information related to the failed call from the first storage device, a first error handler that receives the information from the first component runtime and identifies the component and retrieves further information from a memory, a first recovery manager that receives the further information from the first error handler and identifies a second recovery manager; and
a second system comprising;
the second recovery manager that recovers the failed component, and a second storage device that comprises logged interactions pertaining to the component. - View Dependent Claims (4, 5, 6)
-
-
7. A computer readable medium having computer-executable instructions for performing the steps comprising:
-
intercepting events comprising at least one of a plurality of method calls, component activations, and component deactivations;
logging the events during execution of at least one stateful piece-wise deterministic (PWD) component having a component state in a computer system;
detecting a failure of one of the components based on an error detected during execution;
replaying the logged events to recover the component state;
reading the log via a recovery manager and replaying the logged events;
re-executing the component between logged events; and
communicating to other recovery managers and to an error handler new information about a logical component.
-
Specification