Methods and systems for real-time continuous updates
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.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method of versioning data in a database maintained within a host computer system coupled with a hardware accelerator, the host computer system including a host memory, and the hardware accelerator including a hardware accelerator memory, 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 modifying the data in pages of the hardware accelerator memory from one snapshot to another snapshot.
2 . The method of claim 1 , wherein generating the mask comprises generating a mask having a fixed width format that is independent of the data type being modified.
3 . The method of claim 1 , wherein generating the mask comprises generating a mask having data that is in a same compressed form as the data in the database.
4 . The method of claim 1 , further comprising storing a mask for an active snapshot in the host memory and storing at least one additional mask for completed snapshots in the host memory.
5 . The method of claim 1 , further comprising storing a mask for an active snapshot in the host memory and storing at least one additional mask for completed snapshots in the hardware accelerator memory.
6 . The method of claim 1 , further comprising setting the interval based on a configuration.
7 . The method of claim 1 , further comprising setting the interval based on a size of accumulated changes.
8 . The method of claim 1 , further comprising applying the mask to data in the hardware accelerator memory upon a transaction commit.
9 . The method of claim 1 , further comprising applying the mask to data in the hardware accelerator memory upon demand by a query.
10 . A tangible, non-transitory, computer readable medium comprising program code for performing a method of versioning data in a database maintained within a host computer system coupled with a hardware accelerator, the host computer system including a host memory, and the hardware accelerator including a hardware accelerator memory, 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 modifying the data in pages of the hardware accelerator memory from one snapshot to another snapshot.
11 . The computer readable medium of claim 10 , wherein the program code for generating the mask comprises program code for generating a mask having a fixed width format that is independent of the data type being modified.
12 . The computer readable medium of claim 10 , wherein the program code for generating the mask comprises program code for generating a mask having data that is in a same compressed form as the data in the database.
13 . The computer readable medium of claim 10 , further comprising program code for storing a mask for an active snapshot in the host memory and program code for storing at least one additional mask for completed snapshots in the host memory.
14 . The computer readable medium of claim 10 , further comprising program code for storing a mask for an active snapshot in the host memory and program code for storing at least one additional mask for completed snapshots in the hardware accelerator memory.
15 . The computer readable medium of claim 10 , further comprising program code for setting the interval based on a configuration.
16 . The computer readable medium of claim 10 , further comprising program code for setting the interval based on a size of accumulated changes.
17 . The computer readable medium of claim 10 , further comprising program code for applying the mask to data in the hardware accelerator memory upon a transaction commit.
18 . The computer readable medium of claim 10 , further comprising program code for applying the mask to data in the hardware accelerator upon demand by a query.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.