Transaction processing for database in persistent system

US9417974B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9417974-B2
Application numberUS-201313892180-A
CountryUS
Kind codeB2
Filing dateMay 10, 2013
Priority dateMar 28, 2013
Publication dateAug 16, 2016
Grant dateAug 16, 2016

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.

Performing a transaction in the context of a computing system that has one or more persistent systems coupled to one or more processors over a bus. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence of one or more record versions, each version having a valid interval during which the record version is considered to properly represent the record. As part of the transaction, post-commit processing information is generated to allow the computing system to recover in the event of a system failure.

First claim

Opening claim text (preview).

What is claimed is: 1. A method implemented by a computing system for performing a transaction on a collection of records in a persistent system coupled to one or more processors via a bus and to thereby enable multi-versioning with the persistent system in such a manner that facilitates placing the persistent system in a transactionally consistent state, the method comprising: for each record version that is created by the transaction, the computing system providing the record version to the persistent system via the bus; for each record version that is updated by the transaction, the computing system providing at least a portion of the record version to the persistent system via the bus; the computing system logging in a log buffer post-commit processing information including at least a commit marker for the transaction and a pointer for each record version that is created by the transaction and for each record version that is updated by the transaction; an act of providing the log buffer with the post-commit processing information to the persistent system subsequent to the logging; and an act of confirming that the record versions provided to the persistent memory, as well as the log buffer with the post-commit processing information, have been persisted in the persistent system to thereby facilitate placing the persistent system in a transactionally consistent state, the act of confirming including: issuing a separate persist command to the persistent system, subsequent to providing the record versions and the log buffer to the persistent system, the persist command causing any data provided to the persistent system that has not yet been made durable to be made durable in the persistent system; and receiving a return confirmation responsive to the persist command. 2. The method in accordance with claim 1 , wherein for each record version that is updated by the transaction, the portion of the record version provided to persistent system includes a valid interval end boundary for the corresponding record version. 3. The method in accordance with claim 1 , further comprising: an act of associating a log buffer with the transaction, and preparing the log buffer for filling, wherein the act of logging comprises an act of providing the post-commit processing information into the log buffer that has been prepared for filling, and wherein the act of providing the post-commit processing information to the persistent main memory comprises an act of providing the log buffer to the persistent system. 4. The method in accordance with claim 1 , further comprising: an act of validating one or more read operations of the transaction. 5. The method in accordance with claim 1 , further comprising: an act of validating one or more scan operations of the transaction. 6. The method in accordance with claim 1 , further comprising: an act of committing the transaction after the act of confirming. 7. The method in accordance with claim 6 , wherein the act of committing comprises: an act closing a status of the post-commit processing information so that it is not further added to; and an act of persisting the closed state of the post-commit processing information to the persistent system. 8. The method in accordance with claim 7 , wherein the act of persisting the closed state comprises: an act of providing the closed state of the post-commit processing operation to the persistent system; and an act of confirming that the closed state of the post-commit processing operation has been persisted in the persistent system. 9. The method in accordance with claim 7 , wherein the post-commit processing information is located in a current log buffer, wherein the act of persisting the closed state of the post-commit processing information comprises: an act of providing the closed state of the post-commit processing operation to the persistent system by providing a filled state of a current log buffer to the persistent system; an act of freeing up a prior log buffer in which post-commit processing information from a prior transaction was located; an act of providing the freed state of the prior log buffer to the persistent system; and an act of confirming that the filled state of the current log buffer and the freed state of the prior log buffer have been persisted to the persistent system by issuing a new persist command to the persistent system. 10. The method in accordance with claim 9 , further comprising: an act of terminating the prior transaction after the act of confirming that the filled state of the current log buffer and the freed state of the prior log buffer have been persisted to the persistent system. 11. The method in accordance with claim 10 , further comprising: for each written record version that is created or updated by the transaction, an act of updating a valid interval using the post-commit processing information. 12. The method in accordance with claim 11 , further comprising: an act of providing the updated valid interval for each of the written record versions to the persistent system. 13. The method in accordance with claim 12 , wherein the current transaction is not removed from a transaction map until after the method is again begun for a subsequent transaction. 14. The method in accordance with claim 1 , further comprising: for each written record version that is created or updated by the transaction, an act of updating a valid interval using the post-commit processing information. 15. The method in accordance with claim 14 , further comprising: an act of providing the updated valid interval for each of the written record versions to the persistent system. 16. The method in accordance with claim 15 , further comprising: an act of confirming that the updated valid interval for each of the written record versions has been persisted to the persistent system. 17. The method in accordance with claim 16 , further comprising: an act of terminating the transaction after the act of confirming that the updated valid interval for each of the written record versions has been persisted to the persistent system. 18. The method in accordance with claim 1 , further comprising: for each record version that is created by the transaction, an act of updating a valid interval begin boundary using the post-commit processing information; and for each record version that is updated by the transaction, an act of updating a valid interval end boundary using the post-commit processing information. 19. A system comprising: one or more processors; a persistent system capable of persisting data; a bus coupling the one or processors to the persistent system, wherein the persistent system has an addressing system that is addressable by the one or more processors via the system bus; and a transaction system configured to complete a transaction utilizing multi-versioning with the persistent system in a manner that facilitates placing the persistent system in a transactionally consistent state by performing the following: for each record version that is created by the transaction, an act of providing the record version to the persistent system; for each record version that is updated by the transaction, an act of providing at least a portion of the record version to the persistent system; an act of logging in a log buffer post-commit processing information including at least a commit marker for the transaction and a pointer for each record version that is created by the transaction and for each record version tha

Assignees

Inventors

Classifications

  • involving logging of persistent data for recovery · CPC title

  • Physics · mapped topic

  • Restarting or rejuvenating · CPC title

  • Management of the backup or restore process · CPC title

  • Backup restoration techniques · CPC title

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 US9417974B2 cover?
Performing a transaction in the context of a computing system that has one or more persistent systems coupled to one or more processors over a bus. As an example, the persistent system may serve as at least part of the main memory of the computing system. The transaction might implement multi-versioning in which a record is not updated in place. Rather, each record is represented as a sequence …
Who is the assignee on this patent?
Microsoft Technology Licensing Llc, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F11/1471. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 16 2016 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).