High performance transactions in database management systems
AssigneeMicrosoft Corporation
InventorsDavid Bruce Lomet, Justin Jon Levandoski, Sudipta Sengupta, Ryan Stutsman
Life of this patent
Estimating the term…
Abstract
A transaction engine includes a multi-version concurrency control (MVCC) module that accesses a latch-free hash table that includes respective hash table entries that include respective buckets of respective bucket items. The bucket items represent respective records, the respective bucket items each including a value indicating a temporal most recent read time of the item and a version list of descriptions that describe respective versions of the respective records, the MVCC module performing timestamp order concurrency control, using the latch-free hash table. Recovery log buffers may be used as cache storage for the transaction engine.
Claims20
A system comprising:
- at least one processor;
- a transaction component that includes a computer-readable storage medium that stores executable instructions that are executable by the at least one processor, the executable instructions including a transaction engine that includes:
- a multi-version concurrency control (MVCC) module that accesses a latch-free hash table that includes respective hash table entries that include respective buckets of respective bucket items that represent respective records, the respective bucket items each including a value indicating a temporal most recent read time of the each item and a version list of one or more descriptions that describe one or more respective versions of the respective records, using a recovery log as a source of the one or more respective versions of the respective records, the MVCC module performing timestamp order concurrency control, using the latch-free hash table, the temporal most recent read time of the each item including a timestamp value representing the temporal last time the each item was read.
A method comprising:
- accessing a latch-free hash table that includes respective hash table entries that include respective buckets of respective bucket items that represent respective records, the respective bucket items each including a value indicating a temporal most recent read time of the each item and a version list of one or more descriptions that describe one or more respective versions of the respective records, using a recovery log as a source of the one or more respective versions of the respective records;
- and
- performing timestamp order concurrency control for a key-value store, using the latch-free hash table.
A computer program product comprising a computer-readable storage medium storing executable instructions that when executed by at least one processor cause at least one computing device to:
- access a storage entity structured as a plurality of storage buffers using dynamic allocation of storage for newly arriving storage entity entries;
- maintain an offset variable value indicating a next available location for newly requested storage allocation within a particular storage buffer, the offset variable value updated via an atomic fetch and increment (FAI) operation to add the size of a requested allocation to the offset variable value, the offset variable value further indicating a current number of active users of the particular storage buffer;
- initiate storage of an entry in the storage entity using dynamic allocation of storage in one of the storage buffers;
- and
- update the offset variable value.
Dependencies are inferred from the claim text.