Recovery processing for database in persistent system

US9519551B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9519551-B2
Application numberUS-201313892150-A
CountryUS
Kind codeB2
Filing dateMay 10, 2013
Priority dateMar 28, 2013
Publication dateDec 13, 2016
Grant dateDec 13, 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.

The recovery of one or more transactions in a computing system in which one or more persistent systems are coupled via a bus to one or more processors. 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.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for recovering a transaction in a computing system that includes a persistent system coupled to one or more processors via a bus, the method comprising: an act of identifying a log buffer in the persistent system, the log buffer containing post-commit processing information that is persisted in the persistent system and that corresponds to a transaction and that includes both a commit marker and a pointer reference for each of a plurality of different written record versions that are also persisted in the persistent system; an act of identifying each written record version of the plurality of different written record versions that is created or updated by the transaction using the post-commit processing information; for each written record version that is created or updated by the transaction, an act of updating a valid interval of said each written record using the commit marker of the post-commit processing information; providing the updated valid interval to the persistent system; and issuing a persist command to the persistent system, subsequent to providing the updated valid interval to the persistent system, which causes data provided to the persistent system and that is temporarily maintained in a buffer of the persistent system to be persisted, thereby further facilitating making the updated valid interval durable. 2. The method in accordance with claim 1 , wherein the act of updating the valid interval comprises: for each record version that is created by the transaction, an act of updating a valid interval begin boundary using the commit marker. 3. The method in accordance with claim 1 , wherein the act of updating the valid interval comprises: for each record version that is updated by the transaction, an act of updating a valid interval end boundary using the commit marker. 4. The method in accordance with claim 1 , wherein the act of identifying the log buffer in the persistent system comprises: an act of identifying the log buffer being marked as complete within the persistent system; and an act of identifying the transaction using the post-commit processing information within the log buffer. 5. A computer program product comprising one or more computer-readable storage media having thereon computer-executable instructions that are executable by one or more processors of a computing system to cause the computing system to implement the following as part of a recovery: identify one or more log buffers that are marked as being complete in the persistent system, each of the one or more log buffers being marked as complete including post-commit processing information for each of a plurality of different written record versions that are also persisted in the persistent system; and for each of the one or more identified complete log buffers, use post-commit processing information included within the log buffer to: identify each written record version of the plurality of different written record versions that is created or updated by a transaction using the post-commit processing information, the post-commit processing information including both a commit marker and a pointer reference for each of the written record versions; for each written record version that is created or updated by the transaction, update a valid interval of said each written record version by using a commit marker of the post-commit processing information; providing the updated valid interval to the persistent system; and issuing a persist command to the persistent system, subsequent to providing the updated valid interval to the persistent system, which causes data provided to the persistent system and that is temporarily maintained in a buffer of the persistent system to be persisted, thereby further facilitating making the updated valid interval durable. 6. The computer program product in accordance with claim 5 , wherein the computer-executable instructions are further configured to cause the computing system to: identify one or more log buffers that are not marked as being complete in the persistent system; and for each of the one or more identified log buffers that are not identified as being complete in the persistent system, free the log buffer so that it is available to be associated with another transaction. 7. The computer program product in accordance with claim 6 , wherein the computer-executable instructions are further configured to cause the computing system to: set a state of the log buffer to represent that the log buffer is available to be associated with another transaction; and provide the state that represents that the log buffer is available to the persistent memory. 8. The computer program product in accordance with claim 7 , wherein the computer-executable instructions are further configured to cause the computing system to: confirm that the state that represents that the log buffer is available has been persisted in the persistent system. 9. The computer program product in accordance with claim 5 , wherein the computer-executable instructions are further configured to cause the computing system to, for each of the one or more identified complete log buffers, free the corresponding log buffer so that it is available to be associated with another transaction after the valid interval is updated. 10. The computer program product in accordance with claim 9 , wherein the computer-executable instructions are further configured to cause the computing system to recover the database to a valid state after the log buffers for each of the one or more identified complete log buffers are freed. 11. The computer program product in accordance with claim 9 , wherein the computer-executable instructions are further configured to cause the computing system to recover the database to the valid state by causing the computing system to: locate all record versions that are currently valid; locate empty record slots; and rebuild indexes of the database. 12. The computer program product in accordance with claim 11 , wherein the computer-executable instructions are further configured to cause the computing system to rebuild the indexes by causing the computing system, for each of at least some portions corresponding to a database in the persistent system, to: access a valid interval begin boundary for the memory portion; use the valid interval begin boundary to identify that the memory portion contains at least a portion of a record version that is not part of a transaction; and add the memory portion to a free list. 13. The computer program product in accordance with claim 11 , wherein the computer-executable instructions are further configured to cause the computing system to rebuild the indexes by causing the computing system, for each of at least some portions corresponding to a database in the persistent system, to: access a valid interval begin boundary for the memory portion; use the valid interval begin boundary to identify that the memory portion contains at least a portion of a record version that was created by an uncommitted transaction; modify the memory portion so that the memory portion is considered to be free; and add the memory portion to a free list. 14. The computer program product in accordance with claim 11 , wherein the computer-executable instructions are further configured to cause the computing system to rebuild the indexes by causing the computing system, for each of at least some portions corresponding to a database in the persistent system, to: access a valid interval begin boundary for the memory portion; use the valid interval begin boundary to identify

Assignees

Inventors

Classifications

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 US9519551B2 cover?
The recovery of one or more transactions in a computing system in which one or more persistent systems are coupled via a bus to one or more processors. 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 seque…
Who is the assignee on this patent?
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 Dec 13 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).