Database computer system with application recovery and dependency handling read cache
First Claim
1. In a database computer system having a non-volatile memory, a volatile main memory, and an application executing from the main memory, a computer-implemented method comprising the following steps:
- defining an application object as encompassing an address space of the application;
executing the application to change the address space;
tracking whether the application object has any flush order dependencies with other objects;
in an event that one or more dependencies exist, enforcing a flushing sequence among the application object and the other objects to resolve the flush order dependencies; and
occasionally flushing the application object to the non-volatile memory in an atomic procedure to install changes to the address space, said flushing step being performed in compliance with the flushing sequence.
2 Assignments
0 Petitions
Accused Products
Abstract
This invention concerns a database computer system and method for making applications recoverable from system crashes. The application state (i.e., address space) is treated as a single object which can be atomically flushed in a manner akin to flushing individual pages in database recovery techniques. To enable this monolithic treatment of the application, executions performed by the application are mapped to logical loggable operations which can be posted to the stable log. Any modifications to the application state are accumulated and the application state is flushed from time to time to stable storage using an atomic procedure. Applications are recovered by replaying the logged state transition operations, in the same manner that most database systems replay state transformation operations to recover database pages. This application recovery integrates with database recovery, and effectively eliminates or at least substantially reduces the need for check pointing applications. In addition, optimization techniques are described to make the read, write, and recovery phases more efficient.
153 Citations
59 Claims
-
1. In a database computer system having a non-volatile memory, a volatile main memory, and an application executing from the main memory, a computer-implemented method comprising the following steps:
-
defining an application object as encompassing an address space of the application; executing the application to change the address space; tracking whether the application object has any flush order dependencies with other objects; in an event that one or more dependencies exist, enforcing a flushing sequence among the application object and the other objects to resolve the flush order dependencies; and occasionally flushing the application object to the non-volatile memory in an atomic procedure to install changes to the address space, said flushing step being performed in compliance with the flushing sequence. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a database computer system having a non-volatile memory, a volatile main memory, and an application object which executes from the main memory, a computer-implemented method comprising the following steps:
-
executing the application object which results in affecting a data object; characterizing application execution as a logical operation; logging the logical operation in the non-volatile memory; logging a reference to the affected data object in the non-volatile memory; establishing a flush order dependency between the application object and the data object; and managing a flushing order in which the application object and the data object are occasionally flushed to the non-volatile memory according to the flush order dependency. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. In a database computer system having a non-volatile memory, a volatile main memory, and an application object which executes from the main memory, a computer-implemented method comprising the following steps:
-
executing the application object to perform a read operation to read data from a data object; logging the read operation and a reference to the data object; establishing a flush order dependency between the application object and the data object; and in an event that the data object is to be flushed to non-volatile memory, evaluating the dependency between the application object and the data object to determine whether the data object should be flushed prior to the application object. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. In a database computer system having a non-volatile memory and a volatile main memory, the volatile main memory maintaining an application object, a data object, and an object table with entries identifying the application object and the data object, a computer-implemented method comprising the following steps:
-
executing the application object; calling to a resource manager to read a data object; performing a read operation at the resource manager on behalf of the application object to read data from the data object; returning the data to the application object; logging the read operation in the non-volatile memory; logging a reference to the data object that was read in the non-volatile memory; and recording in the object table a flush order dependency between the application object and the data object. - View Dependent Claims (33, 34, 35, 36, 37)
-
-
38. A database computer system comprising:
-
a volatile main memory; a non-volatile memory that persists across a system crash; a processing unit coupled to the main memory and the non-volatile memory; an application object stored in the volatile main memory and executable on the processing unit; a resource manager which interacts with the application object to mediate communication between the application object and a data object, the application object having an application state which is exposed to the resource manager during interaction through the resource manager with the data object; the resource manager being configured to map application execution resulting in the application state as a logical operation and to log the operation and a reference to the data object in the non-volatile memory; and the resource manager including a cache manager for establishing a flush order dependency between the application object and the data object resulting from the interaction and managing a flushing order in which the application object and the data object are occasionally flushed to the non-volatile memory according to the flush order dependency. - View Dependent Claims (39, 40, 41, 42, 43, 44)
-
- 45. For use on a database computer system having a non-volatile memory, a volatile main memory, a processing unit, a data object stored in the main memory, and an application object stored in the main memory and executed on the processing unit, a cache manager executable on the processor to manage flushing of the data object and the application object from the main memory to the non-volatile memory, the cache manager having an object table which contains entries with information pertaining to both the data object and the application object.
-
52. A computer-readable medium storing an object table which tracks objects stored in a volatile memory and is used by a cache manager in flushing the objects from volatile memory to non-volatile memory, the object table having individual entry structures comprising:
-
an object identifier field to hold an object identifier for an object; and a dependency field to hold a reference to another object, the dependency field being used by the cache manager to indicate a flush order dependency between said object and said another object. - View Dependent Claims (53, 54, 55, 56, 57, 58, 59)
-
Specification