Recovery processing for database in persistent system

US10664362B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10664362-B2
Application numberUS-201615347580-A
CountryUS
Kind codeB2
Filing dateNov 9, 2016
Priority dateMar 28, 2013
Publication dateMay 26, 2020
Grant dateMay 26, 2020

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 computer system comprising: one or more processor(s); and one or more computer-readable hardware storage device(s) having stored thereon computer-executable instructions that are executable by the one or more processor(s) to cause the computer system to persist database information stored in volatile memory to non-volatile memory by causing the computer system to: for a transaction that is configured to perform an operation on one or more records of a database, selectively restrict which record versions of the one or more records are visible to the transaction when the transaction performs the operation, wherein only record versions whose time intervals include a logical read time of the transaction are visible to the transaction while all other record versions are ignored; for a particular record version that was updated in response to the operation of the transaction, perform the following: determine the particular record version is distributed across multiple cache lines of a cache; determine that a portion, but not all, of the particular record version is to be transferred to the non-volatile memory; identify a specific cache line in the cache, the specific cache line comprising the portion of the particular record version; and transfer only the specific cache line to the non-volatile memory; associate a log buffer with the transaction that performed the operation; store information corresponding to the transaction in the log buffer; compute a first checksum over at least a portion of the information stored in the log buffer and include the first checksum as a part of the log buffer, whereby the first checksum is computed over contents included within the log buffer; and transfer the log buffer to non-volatile memory such that the information and the first checksum, both of which are included in the log buffer, are transferred to the non-volatile memory. 2. The computer system in accordance with claim 1 , wherein the database is a multi-versioning database such that each of the one or more records included within the database is represented by one or more record versions that are each created by one or more transactions. 3. The computer system in accordance with claim 2 , wherein an update of a particular record creates a new record version for the particular record, and wherein an interval of validity of the new record version for the particular record does not overlap with an interval of validity of a prior record version for the particular record. 4. The computer system in accordance with claim 2 , wherein the computer-executable instructions are further operable to cause the computer system to perform the following: for each new record version created by the transaction, transfer the newly created record version to the non-volatile memory. 5. The computer system in accordance with claim 2 , wherein the first checksum is computed over a payload of a first record version of a particular record. 6. The computer system in accordance with claim 1 , wherein a second checksum is computed over an entire content of the log buffer, and wherein the second checksum is stored as a part of the log buffer. 7. The computer system in accordance with claim 6 , wherein the transfer of the log buffer to the non-volatile memory also includes a transfer of the second checksum to the non-volatile memory. 8. The computer system in accordance with claim 1 , wherein the log buffer includes a transaction ID that is associated with the transaction. 9. The computer system in accordance with claim 1 , wherein the transaction stores post-commit processing information in the log buffer. 10. The computer system in accordance with claim 9 , wherein the post-commit processing information includes at least the following: a commit marker for the transaction and a reference that is created by the transaction. 11. The computer system in accordance with claim 10 , wherein the database is a multi-versioning database such that each of the one or more records included within the database is represented by one or more record versions, and wherein the transaction creates a reference for each record version of a particular record. 12. The computer system in accordance with claim 1 , wherein the transfer of the log buffer to the non-volatile memory comprises: prior to transferring the log buffer to the non-volatile memory, writing the log buffer to a store buffer that is included as part of the non-volatile memory. 13. The computer system in accordance with claim 1 , wherein the computer-executable instructions are further operable to cause the computer system to perform the following: compute a second checksum over an entire content of the log buffer; and upon a condition in which a recovery of the database is required, performing the following: compute a recovery checksum over the log buffer, wherein the recovery checksum is computed over a portion of the log buffer that excludes the previously computed second checksum; and compare the recovery checksum against the previously computed second checksum to detect whether the recovery checksum and the previously computed second checksum match. 14. The computer system in accordance with claim 13 , wherein the computer-executable instructions are further operable to cause the computer system to perform the following: after comparing the recovery checksum against the previously computed second checksum, compute a different recovery checksum over at least a portion of the information stored in the log buffer; and compare each different recovery checksum against the previously computed first checksum to detect whether the different recovery checksum and the previously computed first checksum match. 15. A computer-implemented method for a computing system persisting database information stored in volatile memory to non-volatile memory, the method comprising: for a transaction that is configured to perform an operation on one or more records of a database, the computing system selectively restricting which record versions of the one or more records are visible to the transaction when the transaction performs the operation, wherein only record versions whose time intervals include a logical read time of the transaction are visible to the transaction while all other record versions are ignored; for a particular record version that was updated in response to the operation of the transaction, the computing system performing the following: determining the particular record version is distributed across multiple cache lines of a cache; determining that a portion, but not all, of the particular record version is to be transferred to the non-volatile memory; identifying a specific cache line in the cache, the specific cache line comprising the portion of the particular record version; and transferring only the specific cache line to the non-volatile memory; the computing system associating a log buffer with the transaction that performed the operation; the computing system storing information corresponding to the transaction in the log buffer; the computing system computing a first checksum over at least a portion of the information stored in the log buffer and include the first checksum as a part of the log buffer, whereby the first checksum is computed over contents included within the log buffer; and the computing system transferring the log buffer to non-volatile memory such that the information and the first checksum, both of which are included in the log buffer, are transferred to the non-volatile memory. 16. The method in accordance

Assignees

Inventors

Classifications

  • Transactional memory (G06F9/528 takes precedence) · CPC title

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

  • Using snapshots, i.e. a logical point-in-time copy of the data · CPC title

  • Management of the backup or restore process · CPC title

  • using timestamps · 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 US10664362B2 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 May 26 2020 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 9 related publications on this page (citations in our corpus or others sharing the same primary CPC).