Error detection/correction and fault detection/recovery – Data processing system error or fault handling – Reliability and availability
Reexamination Certificate
2001-09-04
2004-11-16
Beausoliel, Robert (Department: 2113)
Error detection/correction and fault detection/recovery
Data processing system error or fault handling
Reliability and availability
C714S016000, C714S018000
Reexamination Certificate
active
06820218
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates generally to the field of computer systems and applications that execute on them and, more particularly, to the automatic recovery of stateful application components when the computer system or process supporting the components fails.
BACKGROUND OF THE INVENTION
A component is a discrete unit of code that delivers a specified set of services through specified interfaces. Components provide the services that clients request at run time. A stateful component maintains private state resulting from the execution of one or more method calls. Thus, for example, a client application connecting to a component can have a “conversation” with the component that spans multiple method calls. The component can retain state across those method calls.
Building stateful components is a useful approach in application design. Programmers typically write stateful applications that retain state across component method calls. This provides the information necessary for correct and successful execution across transaction boundaries. However, such stateful components have availability and scalability limitations. One problem with stateful applications is the risk of losing the volatile state as a result of component failure when the system or process supporting the stateful application fails. Such a failure typically requires human intervention to repair or restart the application. Service outages can be very long because of this. A conventional response to this problem is to insist that applications be stateless. A stateless application has “no meaningful state maintained between transactions”. The loss of the component state prevents the masking of system failures from clients, and degrades application availability.
In view of the foregoing, there is a need for systems and methods that overcome the limitations and drawbacks of the prior art.
SUMMARY OF THE INVENTION
The present invention provides persistent stateful components via transparent logging and automatic recovery. Persistent component state is based on method logging, in which interactions between components are intercepted and stably logged. Information sufficient to re-create a component and reinstall state up to the point of the last logged interaction (e.g., via redo recovery of the logged method calls) is persisted on stable storage. In the event of a system failure, aspects of the present invention automatically recreate failed components and recover lost state, without the stateful application itself needing to take measures for its recovery.
An embodiment of the present invention allows stateful application components to begin and end transactions, and, because these components have a state outside of transactions (i.e., a state that can persist across system failures), they are able to recognize transaction error codes, and act on them accordingly. For example, such an application can test the error code and decide whether to simply re-execute the transaction or change input parameters before re-execution, and decide at what point to abandon the effort and return an error code to the caller describing what has happened.
Thus, component-based applications can be written “naturally” as stateful programs. The present invention deals with system failures by logging component interactions and possibly checkpointing state to ensure that the application state can be automatically recovered should a failure occur.
Other features of the invention are described below.
REFERENCES:
patent: 5875291 (1999-02-01), Fox
patent: 6052695 (2000-04-01), Abe et al.
patent: 6701456 (2004-03-01), Biessener
patent: 6732123 (2004-05-01), Moore et al.
patent: 6735716 (2004-05-01), Podanoffsky
Barga, R. et al., “Persistent Client-Server Database Sessions,”7thInt'l. Conf. On Extending Database Technology,Lake Constance, Germany, Mar. 2000, 15 pages.
Barga, R. et al., “Measuring and Optimizing a System for Peristent Database Sessions,”Proc. ICDE,Heidelberg, Germany, Apr. 2001, 10 pages.
Barga, R. et al., “Phoenix: Making Applications Robust,” (demo paper)Proc. of ACM SIGMOD Conference,Philadelphia, Pennsylvania, Jun., 1999, 3 pages.
Lomet, D.,. “Persistent Applications Using Generalized Redo Recovery,”IEEE Int'l. Conference on Data Engineering,Orlando, Florida, 1998, 10 pages.
Lomet, D. et al., “Efficient Transparent Application Recovery in Client-Server Information Systems,”ACM SIGMOD Int'l. Conf. on Management of Data,Seattle, Washington, Jun., 1998, 12 pages.
Lomet, D., et al., “Logical Logging to Extend Recovery to New Domains”,ACM SIGMOD International Conference on Management of Data,Philadelphia, Pennsylvania, 1999, 12 pages.
Barga Roger S.
Lomet David B.
Beausoliel Robert
Wilson Yolanda L.
Woodcock & Washburn LLP
LandOfFree
Persistent stateful component-based applications via... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Persistent stateful component-based applications via..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Persistent stateful component-based applications via... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3288683