Methods and apparatus for managing a database in a distributed operating environment
First Claim
1. 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 database cache and a persistent database portion, the database operable to maintain data persistently for a plurality of clients, said database cache capable of maintaining concurrently data received from multiple clients, which clients intended said data to be maintained persistently by said database, said persistent database portion structured as a single client database, the method including the computer controlled steps of:
- detecting that a cache dirty variable has been set to a first state that indicates that said database cache includes certain data received from at least one of said plurality of clients, said client intending said certain data to be maintained persistently by said database,performing a data commit operation which commits to said persistent database portion said certain data intended to be maintained persistently by said database; and
after the performance of the data commit operation, setting said cache dirty variable to a second state that indicates that said database cache does not include data which must be committed to said persistent database portion.
0 Assignments
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
28 Claims
-
1. 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 database cache and a persistent database portion, the database operable to maintain data persistently for a plurality of clients, said database cache capable of maintaining concurrently data received from multiple clients, which clients intended said data to be maintained persistently by said database, said persistent database portion structured as a single client database, the method including the computer controlled steps of:
-
detecting that a cache dirty variable has been set to a first state that indicates that said database cache includes certain data received from at least one of said plurality of clients, said client intending said certain data to be maintained persistently by said database, performing a data commit operation which commits to said persistent database portion said certain data intended to be maintained persistently by said database; and after the performance of the data commit operation, setting said cache dirty variable to a second state that indicates that said database cache does not include data which must be committed to said persistent database portion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer implemented method for performing a data write operation to a database cache portion of a database being intended to reside in a computer system, the database cache portion suitable for concurrently maintaining data written thereto by a plurality of database clients, the database further including a persistent database portion operable for single client use only, the database operable to maintain data persistently for said plurality of database clients, the method including the computer controlled steps of:
-
setting a cache dirty variable to a state that indicates that the database cache contains data which is intended to be maintained persistently by said database; incrementing by a predetermined value a transaction counter, the transaction counter indicating the number of active data write operations; writing the data to be maintained persistently by said database to the database cache after the transaction counter incrementing step; and decrementing the transaction counter by the predetermined value in conjunction with the data writing step. - View Dependent Claims (19, 20, 21, 22, 23)
-
-
24. A persistent computer database arranged for persistently maintaining data for a plurality of clients, the persistent computer database comprising:
-
a cache database portion arranged to receive and store client data via data write operations performed by a plurality of database clients; a persistent database portion being arranged to receive data from and store data for a single client, and wherein a data commit operation is operable to commit said client data stored in said transient cache database portion into said persistent database portion such that from the perspective of said persistent database portion it appears that said persistent database portion only has a single client which is said transient cache database portion. - View Dependent Claims (25, 26, 27)
-
-
28. 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 database cache and a persistent database portion, the database operable to maintain data persistently for a plurality of clients, said database cache capable of maintaining concurrently data received from multiple clients, which clients intended said data to be maintained persistently by said database, said persistent database portion structured as a single client database, the method including the computer controlled steps of:
-
performing a data write operation that writes data into said database cache, said data written into the cache being intended for storage in the persistent database portion; setting a cache dirty variable to a first state that indicates that the database cache includes data intended for storage in the persistent database portion; detecting that a cache dirty variable has been set to a first state that indicates that said database cache includes certain data received from at least one of said plurality of clients, said client intending said certain data to be maintained persistently by said database, performing a data commit operation which commits to said persistent database portion said certain data intended to be maintained persistently by said database; and after the performance of the data commit operation, setting said cache dirty variable to a second state that indicates that said database cache does not include data which must be committed to said persistent database portion.
-
Specification