Methods and apparatus for managing a database in a distributed object operating environment using persistent and transient cache
DCFirst Claim
1. A computer system for use in a distributed object operating environment, said computer system comprising:
- a central processing unit;
transient memory including random access memory;
persistent memory including a mass storage device; and
a database including;
a transient database cache resident in said transient memory, said transient database cache being arranged to receive and store client data via data write operations performed by a plurality of database clients; and
a persistent database portion resident in said persistent memory, said persistent database portion being arranged to receive and store cache data via data commit operations, said data commit operation being operable to commit said client data from said transient database cache.
1 Assignment
Litigations
0 Petitions
Accused Products
Abstract
A variety of methods and apparatus for managing a database in a object oriented environment are disclosed. According to the present invention, a database is provided which includes a database cache and a persistent database portion. Clients of the database are able to write quickly and asynchronously to the database cache, which may be located in transient memory such as random access memory. In order to maintain consistency between the state of the client and the state in the database, the data in the database cache must be written to the persistent database portion. In preferred embodiments a time commit thread executing in a computer process will, in single operations performed at predetermined intervals and when predetermined conditions are met, commit the data in the database cache into the persistent database portion. Thus through the strategies of the present invention, a single client database can have multiple clients. Clients of the database may be a variety of computer entities which require a mechanism for maintaining persistent state. In particular, objects are contemplated. In an apparatus embodiment of the present invention, a computer system having a central processing unit, a transient memory, a persistent memory, and a database is disclosed.
-
Citations
40 Claims
-
1. A computer system for use in a distributed object operating environment, said computer system comprising:
-
a central processing unit; transient memory including random access memory; persistent memory including a mass storage device; and a database including; a transient database cache resident in said transient memory, said transient database cache being arranged to receive and store client data via data write operations performed by a plurality of database clients; and a persistent database portion resident in said persistent memory, said persistent database portion being arranged to receive and store cache data via data commit operations, said data commit operation being operable to commit said client data from said transient database cache. - View Dependent Claims (2)
-
-
3. A computer system for use in a distributed object operating environment, said computer system comprising:
-
a central processing unit; transient memory including random access memory; persistent memory including a mass storage device; a database including; a transient database cache resident in said transient memory, said transient database cache being arranged to receive and store client data via data write operations performed by a plurality of database clients; and a persistent database portion resident in said persistent memory, said persistent database portion being arranged to receive and store cache data via data commit operations, said data commit operation being operable to commit said client data from said transient database cache to said persistent database portion as if the data intended for the persistent database is coming from a single client. a computer process executing on the computer system, said transient database cache controlled within said computer process; and a cache dirty condition variable resident in said computer process, said cache dirty condition variable having a cache dirty variable and a cache dirty mutex. - View Dependent Claims (4)
-
-
5. A computer system for use in a distributed object operating environment, said computer system comprising:
-
a central processing unit; transient memory including random access memory; persistent memory including a mass storage device; a database including; a transient database cache resident in said transient memory, said transient database cache being arranged to receive and store client data via data write operations performed by a plurality of database clients; and a persistent database portion resident in said persistent memory, said persistent database portion being arranged to receive and store cache data via data commit operations, said data commit operation being operable to commit said client data from said transient database cache to said persistent database portion; a computer process executing on the computer system, said transient database cache controlled within said computer process; and a cache free condition variable resident in said computer process, the cache free condition variable having a cache free mutex, a cache commit request variable, a force abort variable, and a transaction counter. - View Dependent Claims (6)
-
-
7. A computer system for use in a distributed object operating environment, said computer system comprising:
-
a central processing unit; transient memory including random access memory; persistent memory including a mass storage device; a database including; a transient database cache resident in said transient memory, said transient database cache being arranged to receive and store client data via data write operations performed by a plurality of database clients; and a persistent database portion resident in said persistent memory, said persistent database portion being arranged to receive and store cache data via data commit operations, said data commit operation being operable to commit said client data from said transient database cache to said persistence database portion as if the data intended for the persistence database is coming from a single client. a computer process executing on the computer system, said transient database cache controlled within said computer process; and a kill time commit condition variable having a kill time commit mutex and a kill bit. - View Dependent Claims (8)
-
-
9. A computer system for use in a distributed object operating environment, said computer system comprising:
-
a central processing unit; transient memory including random access memory; persistent memory including a mass storage device; and a database including; a transient database cache resident in said transient memory, said transient database cache being arranged to receive and store client data via data write operations performed by a plurality of database clients; and a persistent database portion resident in said persistent memory, said persistent database portion being arranged to receive and store cache data via data commit operations, said data commit operation being operable to commit said client data from said transient database cache to said persistent database portion as if the data intended for the persistent database is coming from a single client. a database client operable to write certain data to said transient database, said certain data intended to be maintained persistently in said database. - View Dependent Claims (10, 11)
-
-
12. A distributed object operating environment comprising:
-
a plurality of computer systems, each of said computer systems including; a central processing unit; transient memory including random access memory; persistent memory including a mass storage device; and a database including; a transient database cache resident in said transient memory, said transient database cache being arranged to receive and store client data via data write operations performed by a plurality of database clients; and a persistent database portion resident in said persistent memory, said persistent database portion being arranged to receive and store cache data via data commit operations, said data commit operation being operable to commit said client data from said transient database cache;
to said persistent database portion as if the data intended for the persistent database is coming from a single client; anda computer network interconnecting said plurality of computer systems.
-
-
13. A computer implemented method for performing a data write operation to a transient database cache portion of a database being intended to reside in a computer system, the database further including a persistent database portion, the database operable to maintain data persistently for a plurality of database clients, the method including the computer controlled steps of:
-
setting a cache dirty variable to a state that indicates that the transient database cache contains data which is intended for the persistent database portion; incrementing by a predetermined value a transaction counter, the transaction counter indicating the number of active data write operations; writing the data intended for the persistent database portion to the transient database cache after the transaction counter incrementing step, the data being written into the cache by a one of said plurality of database clients, said transient database cache operable to simultaneously store data received from multiple write operations; and decrementing the transaction counter by the predetermined value in conjunction with the data writing step. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A computer implemented method for managing a database resident in a computer system, the computer system being intended for use in a distributed object operating environment, the database including a transient database cache and a persistent database portion, the database operable to maintain data persistently for a plurality of database clients, the method including the computer controlled steps of:
-
performing a data write operation that writes data into said transient database cache, said data written into the cache by a one of said plurality of database clients, said data being intended for storage in the persistent database portion, said transient database cache operable to simultaneously store data received from multiple data write operations; setting a cache dirty variable to a first state that indicates that the transient database cache includes data intended for storage in the persistent database portion; performing a data commit operation which commits said data intended for said persistent database portion to said persistent database portion, the data commit operation being performed after the cache dirty variable has been set to the first state, the data commit operation operable to commit data in said transient data cache as if the data intended for the persistent database portion is coming from a single client; and after the performance of the data commit operation, setting said cache dirty variable to a second state that indicates that said transient database cache does not include data which must be committed to said persistent database portions. whereby said database may maintain data persistently for the plurality of database clients in said persistent database portion as if only a single client were using said persistent database portion. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A computer implemented method for committing data from a transient database cache to a persistent database portion, the transient database cache and the persistent database portion each being an element of a database being intended to reside in a computer system, the database operable to maintain data persistently for a plurality of database clients, the transient database cache operable to simultaneously store data received from multiple data write operations, the computer system being suitable for use in a distributed object operating environment, the method including the computer controlled steps of:
-
determining whether a cache dirty variable indicates that the transient database cache includes data intended for the persistent database portion; setting a cache commit request variable to indicate that a commit data operation is in progress when it is determined that the transient database cache includes data intended for the persistent database portion; after the cache commit request variable setting step, determining whether a transaction counter indicates that data write operations are active, the data write operations being operable to write data to the transient database cache; committing data in the transient database cache to the persistent database portion when the transaction counter indicates that no data write operations are active; and after the committing data step, setting the cache dirty variable to indicate that the transient database cache does not include data intended for the persistent database portion. - View Dependent Claims (37, 38, 39, 40)
-
Specification