Point in time database restore from storage snapshots

US9558078B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9558078-B2
Application numberUS-201414526137-A
CountryUS
Kind codeB2
Filing dateOct 28, 2014
Priority dateOct 28, 2014
Publication dateJan 31, 2017
Grant dateJan 31, 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.

Archiving a database and point in time recovery of the database. A method includes taking a first snapshot of a database. The first snapshot of the database includes a first snapshot of the data in the data storage and a first snapshot of the log records in the log storage. The method further includes taking a second snapshot of the database. The second snapshot of the database includes a second snapshot of the data in data storage and a second snapshot of the log records. The method further includes restoring the database to a particular point by applying the first snapshot of the data in the data storage to the database, applying the first snapshot of the log records in the log storage to the database and applying a portion of the second snapshot of the log records in the log storage to the database.

First claim

Opening claim text (preview).

What is claimed is: 1. A system comprising: a database, wherein the database comprises: data storage for storing data items; log storage for storing log records that comprise a list of operations performed on the data storage at discrete points in time; and a mapping structure representing state of the data in the database at any given point in time, the mapping structure comprising a set of pointers to storage locations for data as currently stored at the given point in time; one or more physical computer storage media comprising computer executable instructions; one or more processors, which when executing the computer executable instructions, cause the system to archive the database by providing point in time recovery of the database by restoring the database to a selected point in time between adjacent snapshots, by performing the following: taking a plurality of snapshots each comprising: a data portion comprising pointers to storage locations for data items existing in the database at each respective point in time; a log portion comprising a state of the log storage containing records that represent an enumeration of operations performed on the data storage at each respective point in time; and restoring the database to a particular point in time between a first point in time and a second point in time that is adjacent to the first point in time, by performing the following: for a first snapshot corresponding to the first point in time, performing the following: applying the data portion comprising pointers to storage locations for data items existing in the database at the first point in time; and applying the log portion comprising a state of the log storage containing records that represent an enumeration of operations performed on the data storage at the first point in time; and for a second snapshot corresponding to the adjacent second point in time, applying a portion which comprises some but not all of the log portion of the second snapshot, wherein the applied portion comprises only those log records that represent an enumeration of operations performed on stored data up to the particular point in time between the first point in time and the second point in time. 2. The system of claim 1 , wherein first and second snapshots are performed in a unified snapshot of the database. 3. The system of claim 1 , wherein the data portion of each snapshot comprises capturing the set of pointers in the data mapping structure at each point in time corresponding to each snapshot. 4. The system of claim 1 , wherein size of the log storage of the database is limited to avoid unrestrained expansion by adjusting frequency of the plurality of snapshots taken. 5. The system of claim 1 , wherein the database is a distributed database implemented in a cloud environment, such that different portions of the database are implemented on different virtual machines in the cloud environment. 6. The system of claim 1 , wherein the database is a versioned database storing different versions of data items. 7. The system of claim 1 , wherein the log storage comprises a ring buffer, and wherein storage locations in the log storage are made available, for new records, once existing records in those locations have been captured. 8. A system comprising: a database, wherein the database comprises: data storage for storing data items; log storage for storing log records that comprise a list of operations performed on the data storage at discrete points in time; and a mapping structure representing state of the data in the database at any given point in time, the mapping structure comprising a set of pointers to storage locations for data as currently stored at the given point in time; one or more physical computer storage media comprising computer executable instructions; one or more processors, which when executing the computer executable instructions, cause the system to archive the database by providing point in time recovery of the database by restoring the database to a selected point in time between two snapshots, by performing the following: taking a first snapshot of the database at a first time, and wherein the first snapshot comprises: a data portion containing the set of pointers in the mapping structure at the first time corresponding to the first snapshot of the data in the data storage of the databases; and a log portion containing the list of any operations performed on data up to the first time corresponding to the first snapshot of the log records in the log storage; taking one or more additional snapshots of the database at one or more times subsequent to the first time, wherein the one or more additional snapshots each comprise: a data portion containing the set of pointers in the mapping structure corresponding to each subsequent time for a taken subsequent snapshot of the data storage; and a log portion containing the list of any operations performed on data up to the subsequent time corresponding to each subsequent snapshot, wherein for each additional snapshot the corresponding list of the log portion is a list of all log records occurring after the time of the additional snapshot of the database from a most recent previous snapshot of the database; and restoring the database to a particular point between two snapshots of the database by performing the following: applying the data and log portions of the first snapshot; and then applying some but not all of the log portions from two or more of the additional snapshots, wherein the applied log portions comprise only those records that represent an enumeration of operations performed on stored data up to the particular point in time. 9. The system of claim 8 , wherein the data portion of each snapshot comprises capturing the set of pointers in the data mapping structure at each point in time corresponding to each snapshot. 10. The system of claim 8 , wherein size of the log storage of the database is limited to avoid unrestrained expansion by adjusting frequency of the plurality of snapshots taken. 11. The system of claim 8 , wherein the database is a distributed database implemented in a cloud environment, such that different portions of the database are implemented on different virtual machines in the cloud environment. 12. The system of claim 8 , wherein the database is a versioned database storing different versions of data items. 13. The system of claim 8 , wherein the log storage comprises a ring buffer, and wherein storage locations in the log storage are made available, for new records, once existing records in those locations have been captured. 14. A computer-implemented method for archiving a database by providing point in time recovery of the database, the computer-implemented method being performed by one or more processors executing computer executable instructions for the computer-implemented method, and the computer-implemented method comprising: taking a plurality of snapshots each comprising: a data portion comprising pointers to storage locations for data items existing in the database at each respective point in time; a log portion comprising a state of the log storage containing records that represent an enumeration of operations performed on the data storage at each respective point in time; and restoring the database to a particular point in time between a first point in time and a second point in time that is adjacent to the first point in time, by performing the following: for a first snapshot corresponding to the first point in time, performing the following: applying the data portion comprising pointers to storage lo

Assignees

Inventors

Classifications

  • involving logging of persistent data for recovery · CPC title

  • Database-specific techniques · CPC title

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

  • by selection of backup contents · 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 US9558078B2 cover?
Archiving a database and point in time recovery of the database. A method includes taking a first snapshot of a database. The first snapshot of the database includes a first snapshot of the data in the data storage and a first snapshot of the log records in the log storage. The method further includes taking a second snapshot of the database. The second snapshot of the database includes a secon…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F11/1469. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 31 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).