Efficient Block-Level Space Allocation for Multi-Version Concurrency Control Data
US-2016147448-A1 · May 26, 2016 · US
US9798759B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9798759-B2 |
| Application number | US-201414553535-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 25, 2014 |
| Priority date | Nov 25, 2014 |
| Publication date | Oct 24, 2017 |
| Grant date | Oct 24, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A plurality of transactions are handled in a database. Each transaction comprises a plurality of operations on at least one record in the database with at least two of the transactions being handled concurrently. Thereafter, a temporary timestamp is assigned to each record that is based, at least in part, on the corresponding transaction. A first transaction among the plurality of transactions is subsequently committed. Afterwards, re-stamping of at least one commit timestamp modified by the first transaction is delegated. Related apparatus, systems, techniques and articles are also described.
Opening claim text (preview).
What is claimed is: 1. A method comprising: handling a plurality of transactions in a database, each transaction comprising a plurality of operations on at least one record in the database, at least two of the transactions of the plurality of transactions being handled concurrently by separate handling processes; assigning a temporary timestamp to each record, the temporary timestamp being based, at least in part, on the corresponding transaction; committing a first transaction among the plurality of transactions; and delegating, after committing of the first transaction, re-stamping of at least one temporary timestamp for a first record of the at least one record in the database, the first record being modified by the first transaction, the delegating comprising causing a different process than the handling process for the first transaction to perform the re-stamping, the delegating further comprising passing an undo file identifying a plurality of commit timestamps to be processed to a history manager, re-stamping transaction control block states for a plurality of transaction control blocks corresponding to the commit timestamps, and setting the re-stamped transaction control blocks as free. 2. The method of claim 1 , wherein each transaction has a corresponding transaction control block within a transaction control block array. 3. The method of claim 2 , wherein each transaction control block comprises an identifier for the transaction, a state of the transaction, and at least one timestamp. 4. The method of claim 3 , wherein the state of the transaction is selected from a group consisting of: free, active, aborted, committing, and committed. 5. The method of claim 4 further comprising: determining, using a visibility function, which of the plurality of records in the database are visible to the first transaction; and allowing the first transaction to access the records determined to be visible. 6. The method of claim 5 , wherein the visibility function uses both the state of the transaction and the at least one timestamp from the transaction control block for the first transaction in determining which records are visible. 7. The method of claim 1 , wherein the different process comprises a background process. 8. The method of claim 4 further comprising: initiating aborting a second transaction; setting the state in the transaction control block for the second transaction to aborted; undoing any changes to timestamps in the transaction control block for the second transaction; setting the state in the transaction control block for the second transaction to free. 9. The method of claim 4 , wherein committing the first transaction comprises: setting the state in the transaction control block for the first transaction to committing; first issuing a write memory barrier; setting the commit timestamp in the transaction control block for the first transaction so that it is equal to an atomic increment of a value from a commit timestamp generator; second issuing a write memory barrier; and setting the state in the transaction control block for the first transaction to committed. 10. A non-transitory computer program product storing instructions which, when executed by at least one hardware data processor forming part of at least one computing device, result in operations comprising: handling a plurality of transactions in a database, each transaction comprising a plurality of operations on at least one record in the database, at least two of the transactions of the plurality of transactions being handled concurrently by separate handling processes; assigning a temporary timestamp to each record, the temporary timestamp being based, at least in part, on the corresponding transaction; committing a first transaction among the plurality of transactions; and delegating, after committing of the first transaction, re-stamping of at least one temporary timestamp for a first record of the at least one record in the database, the first record being modified by the first transaction, the delegating comprising causing a different process than the handling process for the first transaction to perform the re-stamping, the delegating further comprising passing an undo file identifying a plurality of commit timestamps to be processed to a history manager, re-stamping transaction control block states for a plurality of transaction control blocks corresponding to the commit timestamps, and setting the re-stamped transaction control blocks as free. 11. The computer program product of claim 10 , wherein each transaction has a corresponding transaction control block within a transaction control block array. 12. The computer program product of claim 11 , wherein each transaction control block comprises an identifier for the transaction, a state of the transaction, and at least one timestamp. 13. The computer program product of claim 12 , wherein the state of the transaction is selected from a group consisting of: free, active, aborted, committing, and committed. 14. The computer program product of claim 13 , wherein the operations further comprise: determining, using a visibility function, which of the plurality of records in the database are visible to the first transaction; and allowing the first transaction to access the records determined to be visible. 15. The computer program product of claim 14 , wherein the visibility function uses both the state of the transaction and the at least one timestamp from the transaction control block for the first transaction in determining which records are visible. 16. The computer program product of claim 10 , wherein the different process comprises a background process. 17. The computer program product of claim 13 , wherein the operations further comprise: initiating aborting a second transaction; setting the state in the transaction control block for the second transaction to aborted; undoing any changes to timestamps in the transaction control block for the second transaction; setting the state in the transaction control block for the second transaction to free. 18. A system comprising: at least one hardware data processor; and memory storing instructions which, when executed by the at least one hardware data processor, result in operations comprising: handling a plurality of transactions in a database, each transaction comprising a plurality of operations on at least one record in the database, at least two of the transactions of the plurality of transactions being handled concurrently by separate handling processes; assigning a temporary timestamp to each record, the temporary timestamp being based, at least in part, on the corresponding transaction; committing a first transaction among the plurality of transactions; and delegating, after committing of the first transaction, re-stamping of at least one temporary timestamp for a first record of the at least one record in the database, the first record being modified by the first transaction, the delegating comprising causing a different process than the handling process for the first transaction to perform the re-stamping, the delegating further comprising passing an undo file identifying a plurality of commit timestamps to be processed to a history manager, re-stamping transaction control block states for a plurality of transaction control blocks corresponding to the commit timestamps, and setting the re-stamped transaction control blocks as free.
Concurrency control (transaction processing G06F9/466) · CPC title
Updates performed during online database operations; commit processing · CPC title
Physics · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.