IN-MEMORY DATABASE SYSTEM
First Claim
1. A computerized method for controlling access to database records stored in memory shared among multiple processes comprising:
- creating a record entry in look-aside table for a process when the process updates a database;
preserving any original database record affected by the update; and
giving a process access to a new database record created by the update if a record entry corresponding to the new database record exists in the look-aside table for the process.
2 Assignments
0 Petitions
Accused Products
Abstract
An in-memory database system uses a shared memory to cache records and keys read from a database and controls the updating of the records and keys through a database manager process. When a transaction performs an update, the original, unmodified data is preserved in the shared memory, the new data is written to the shared memory, and a look-aside table for the transaction records the changes. A transaction performs read-only access to the shared memory using its own context while a versioning scheme based on the look-aside tables ensures a read-committed isolation level view of the original, unmodified data until the modifying transaction commits the update. The database manager is responsible for writing the new data into the shared memory and for maintaining the look-aside tables for all transaction which have made modifications to the data in the shared memory. The database manager also writes committed changes to the database and performs rollback on uncommitted changes in the shared memory using the entries in the look-aside table for the committing/aborting transaction. The shared memory is divided into logical pages and short duration page latches are employed to maintain consistency on the page while a transaction or the database manager is reading or writing data on the page.
129 Citations
26 Claims
-
1. A computerized method for controlling access to database records stored in memory shared among multiple processes comprising:
-
creating a record entry in look-aside table for a process when the process updates a database;
preserving any original database record affected by the update; and
giving a process access to a new database record created by the update if a record entry corresponding to the new database record exists in the look-aside table for the process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computerized system comprising:
-
a plurality of client processes for manipulating data;
a shared memory for caching the data manipulated by the plurality of client processes; and
an in-memory database manager for creating a table in the shared memory for each one of the plurality of client process that requests changes to data in the shared memory, for making the changes, and for modifying the table to reflect changes made to the data requested by the associated client process, wherein each client process uses its associated table to determine if it has access to changed data in shared memory. - View Dependent Claims (10, 11, 12, 14, 15, 16, 19, 20, 21, 22, 23, 24, 26)
-
-
13. A computer-readable medium having stored thereon a look-aside table data structure comprising:
-
an old record field containing data representing a record identifier for an original record;
a new record field containing data representing a record identifier for a new record associated with the original record identified by the old record field; and
a column bitmap field containing data representing columns of data that are different between the original record identified by the old record field and the new record identified by the new record field.
-
-
17. A computer-readable medium having stored thereon an transaction table data structure comprising:
-
a transaction identifier field containing data representing a unique identifier for a transaction; and
a table address field containing data representing a table structure holding update information for the transaction identified by the transaction identifier field.
-
-
18. A computer-readable medium having computer-executable instructions to cause a computer to perform a method comprising:
-
dividing a shared memory into pages and associating an exclusive page latch with each page, and further associating a plurality of shared page latches with each page, wherein the exclusive page latch is acquired by a core process when writing data to a page, and one of the shared page latches is acquired by a client transaction when reading data from a page;
writing unmodified database data in the pages;
creating a look-aside table on a page in response to a client transaction requesting an update to the database data, wherein the look-aside table contains entries for tracking the updates;
writing the updated database data in the pages; and
deleting unmodified database data from the pages when the corresponding updated database data is committed by the transaction that requested the update.
-
-
25. A method for maintaining data consistency on a shared memory page comprising:
-
synchronizing read-only access to the page using a plurality of shared page latches associated with the page, wherein each transaction accessing the page to read data holds one of the plurality of shared page latches for only as long as necessary to read the data; and
synchronizing update access to the page with the read-only accesses to the page using a single exclusive page latch associated with the page, wherein only a core process can request the exclusive page latch, latches the page for update when all shared page latches are released, and holds the exclusive page latch for only as long as necessary to update the data.
-
Specification