Delegation of database post-commit processing

US9798759B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9798759-B2
Application numberUS-201414553535-A
CountryUS
Kind codeB2
Filing dateNov 25, 2014
Priority dateNov 25, 2014
Publication dateOct 24, 2017
Grant dateOct 24, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • Concurrency control (transaction processing G06F9/466) · CPC title

  • Updates performed during online database operations; commit processing · CPC title

  • Physics · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9798759B2 cover?
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 …
Who is the assignee on this patent?
Sap Se
What technology area does this patent fall under?
Primary CPC classification G06F16/2308. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 24 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).