METHODS AND SYSTEMS FOR REAL-TIME CONTINUOUS UPDATES
First Claim
1. A method of versioning data in a database, said method comprising:
- determining snapshots of data in the database at an interval;
identifying differences in the data;
determining a set of changes that takes the data from one snapshot to another snapshot; and
generating a mask comprising the set of changes that is applied by a machine code database instruction for changing the data from one snapshot to the other snapshot.
5 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide fine grain concurrency control for transactions in the presence of database updates. During operations, each transaction is assigned a snapshot version number or SVN. A SVN refers to a historical snapshot of the database that can be created periodically or on demand. Transactions are thus tied to a particular SVN, such as, when the transaction was created. Queries belonging to the transactions can access data that is consistent as of a point in time, for example, corresponding to the latest SVN when the transaction was created. At various times, data from the database stored in a memory can be updated using the snapshot data corresponding to a SVN. When a transaction is committed, a snapshot of the database with a new SVN is created based on the data modified by the transaction and the snapshot is synchronized to the memory. When a transaction query requires data from a version of the database corresponding to a SVN, the data in the memory may be synchronized with the snapshot data corresponding to that SVN.
41 Citations
30 Claims
-
1. A method of versioning data in a database, said method comprising:
-
determining snapshots of data in the database at an interval; identifying differences in the data; determining a set of changes that takes the data from one snapshot to another snapshot; and generating a mask comprising the set of changes that is applied by a machine code database instruction for changing the data from one snapshot to the other snapshot. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of enabling queries to continuously operate on different states of data while allowing the data to be manipulated, said method comprising:
-
receiving queries and transactions on data simultaneously in the database, wherein the queries operate on a data stored in a first memory coupled to a hardware accelerator and the transactions operate on another data stored in a second memory coupled to a host; taking snapshots of data in the second memory at an interval; determining a set of changes that takes the data in the first memory from one snapshot to another snapshot; generating a mask comprising the set of changes that is applied by a machine code database instruction for changing the data in the first memory from one snapshot to the other snapshot. determining, for each query, a snapshot that is associated with that query; and determining data in the first memory on which the queries will operate based on the snapshot and selectively applying the mask. - View Dependent Claims (12, 13)
-
-
14. A system that enables queries to operate on different states of data from a database while allowing transactions on the data, wherein the data can be stored in a first memory and a second memory, said system comprising:
-
a query engine that performs queries on data stored in a first memory; a transaction engine that performs transactions on at least some of the same data stored in a second memory during the same time that the queries are performed; and a transaction manager configured to determine snapshots of the data in the second memory at an interval, determine a set of changes that tracks changes in the data in the second memory from one snapshot to another snapshot, and modify data in the first memory on which the queries will operate based on snapshots assigned to each of the queries and selectively requesting a machine code database instruction that applies the changes to the data in the first memory. - View Dependent Claims (15, 16)
-
-
17. A computer readable medium comprising program code for performing a method of versioning data in a database, said medium comprising:
-
program code for determining snapshots of data in the database at an interval; program code for identifying differences in the data; program code for determining a set of changes that takes the data from one snapshot to another snapshot; and program code for generating a mask comprising the set of changes that is applied by a machine code database instruction for changing the data from one snapshot to the other snapshot. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A computer readable medium comprising program code for performing a method of enabling queries to continuously operate on different states of data while allowing the data to be manipulated, said computer readable medium comprising:
-
program code for receiving queries and transactions on data simultaneously in the database, wherein the queries operate on a data stored in a first memory coupled to a hardware accelerator and the transactions operate on another data stored in a second memory coupled to a host; program code for taking snapshots of data in the second memory at an interval; program code for determining a set of changes that takes the data in the first memory from one snapshot to another snapshot; program code for generating a mask comprising the set of changes that is applied by a machine code database instruction for changing the data in the first memory from one snapshot to the other snapshot. program code for determining, for each query, a snapshot that is associated with that query; and program code for determining data on which the queries will operate based on the snapshot and selectively applying the mask. - View Dependent Claims (28, 29)
-
-
30. A method of reconstructing data for a transaction that has been interrupted, said method comprising:
-
receiving queries and transactions on data simultaneously in the database, wherein the queries operate on data stored in a first memory coupled to a hardware accelerator and the transactions operate on another copy of the data stored in a second memory coupled to a host; taking snapshots of data in the second memory at an interval; determining a set of changes that takes the data in the first memory from one snapshot to another snapshot; detecting an interruption in the transaction; determining a snapshot in which the interruption occurred; generating a mask comprising the set of changes that is applied by a machine code database instruction for changing the data from the first memory from one snapshot to the snapshot in which the interruption occurred; and recovering data from the first memory into the second memory based on the mask.
-
Specification