Persistent stateful component-based applications via automatic recovery
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.
Claims
exact text as granted — not AI-modified1 . A method of providing recovery 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 stateful piece-wise deterministic (PWD)-components having a component state; detecting a failure of one of the components based on an error detected during execution; and replaying the logged events to recover the component state.
2 . The method of claim 1 , further comprising:
intercepting non-deterministic events; providing a policy mechanism that, upon interception of the events, permits the logging of the intercepted events; providing an error handler that is invoked when an error is detected, such error handler being capable of masking the error from the component.
3 . The method of claim 1 , further comprising:
logging information about how the component is mapped to a first set of resources such that the component can be re-mapped to a different set of resources should a system failure result in a termination of the first set of resources, said re-mapping enabling scalability and load balancing.
4 . The method of claim 3 , wherein the information includes a logical identifier for the component that identifies logged state information for the component.
5 . The method of claim 1 , further comprising exactly-once execution comprising:
uniquely identifying messages at a sender; detecting an original message and at least one duplicate message at a receiver; eliminating the at least one duplicate message; and providing a reply to the at least one duplicate message that is the same as a reply to the original message.
6 . The method of claim 1 , further comprising:
notifying an error handler when the error is detected; contacting a recovery manager to recover the component that has failed; re-trying an interaction that failed at the time of the failure; and returning the result of the re-tried interaction to the component.
7 . (canceled)
8 . The method of claim 1 , further comprising:
retrieving information related to the failed call; and identifying the component based on the retrieved information.
9 . The method of claim 1 , further comprising:
updating references to the component with an interface pointer corresponding to the component; and logging the recovery of the component.
10 . (canceled)
11 . The method of claim 1 , further comprising intercepting the method call and response, and invoking a policy on at least one of the call and the response.
12 . The method of claim 1 , 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 comprising 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.
13 . The method of claim 12 , further comprising identifying a recovery manager responsible for the component and passing the information to the recovery manager.
14 . (canceled)
15 . A system for providing recovery in a computer system, comprising:
a storage device that logs events comprising at least one of a plurality of method calls, component activations, and component deactivations during execution of stateful piece-wise deterministic (PWD) components having a component state; a component runtime that receives the events from the storage device; a error handler that receives the events from the component runtime and identifies the component based on the events; and a recovery manager that receives the events from the storage device and replays the events to transparently and automatically recover the component state.
16 . The system of claim 15 , wherein the error handler is notified of an error and contacts the recovery manager to recover the component state.
17 . (canceled)
18 . The system of claim 15 , wherein the component runtime intercepts the at least one method call and invokes a policy on the at least one method call.
19 . The system of claim 15 , further comprising an activation hook that logs information in the storage device that is sufficient to re-create the component.
20 - 23 . (canceled)
24 . 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; and replaying the logged events to transparently and automatically recover the component state.
25 . The computer readable medium of claim 24 , having further computer-executable instructions for:
intercepting non-deterministic events; providing a policy mechanism that, upon interception of the events, permits the logging of the intercepted events; providing an error handler that is invoked when an error is detected, such error handler being capable of masking the error from the component.
26 . The computer readable medium of claim 24 , having further computer-executable instructions for:
logging information about how the component is mapped to a first set of resources such that the component can be re-mapped to a different set of resources should a system failure result in a termination of the first set of resources, said re-mapping enabling scalability and load balancing.
27 . The computer readable medium of claim 26 , wherein the information includes a logical identifier for the component that identifies logged state information for the component.
28 . The computer readable medium of claim 24 , having further computer-executable instructions for providing exactly-once execution comprising:
uniquely identifying messages at a sender; detecting an original message and at least one duplicate message at a receiver; eliminating the at least one duplicate message; and providing a reply to the at least one duplicate message that is the same as a reply to the original message.
29 . The computer readable medium of claim 24 , having further computer-executable instructions for:
notifying an error handler when the error is detected; contacting a recovery manager to recover the component that has failed; re-trying an interaction that failed at the time of the failure; and returning the result of the re-tried interaction to the component.
30 . (canceled)
31 . The computer readable medium of claim 24 , having further computer-executable instructions for:
retrieving information related to the failed call; and identifying the component based on the retrieved information.
32 . The computer readable medium of claim 24 , having further computer-executable instructions for:
updating references to the component with an interface pointer corresponding to the component; and logging the recovery of the component.
33 . (canceled)Join the waitlist — get patent alerts
Track US2006248386A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.