Systems and methods for restoring a file
First Claim
Patent Images
1. A method for restoring a file, the method comprising:
- receiving a time reference;
locating a nearest mirror that is previous to the time reference, the nearest mirror including all blocks of data corresponding to the file at a time previous to the time reference;
locating all intervening delta increments between the time reference and the nearest mirror, the intervening delta increments including both inherited blocks of data and literal blocks of data, the inherited blocks of data including;
data that has not changed relative to a temporally previous delta increment, ordata that has not changed since the creation of the nearest mirror when the delta increment is temporally adjacent to the nearest mirror,the literal blocks of data indicative of;
data that has changed since the creation of a temporally adjacent delta increment, ordata that has changed since the creation of the nearest mirror when the delta increment is temporally adjacent to the nearest mirror;
opening the located intervening delta increments such that all intervening delta increments are open at the same time;
determining offsets and lengths for both the inherited blocks and the literal blocks in each of the opened intervening delta increments, while all intervening delta increments are open;
analyzing each of the intervening delta increments in reverse chronological order beginning with the intervening delta increment temporally adjacent to the time reference, while all intervening delta increments are open;
inheriting the inherited blocks in reverse chronological order based on the analysis of each of the delta increments in turn, until encountering a literal block in either an intervening delta increment or the nearest mirror, while all intervening delta increments are open; and
copying the encountered literal block into a restored file.
11 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for restoring files and metadata records associated with files are provided herein. Some of the methods include identifying a version of the file, evaluating one or more reverse incremental delta increments, and restoring an arbitrary version of the file based on an arbitrary time reference by assembling the arbitrary version of the file based on the one or more reverse incremental delta increments.
-
Citations
20 Claims
-
1. A method for restoring a file, the method comprising:
-
receiving a time reference; locating a nearest mirror that is previous to the time reference, the nearest mirror including all blocks of data corresponding to the file at a time previous to the time reference; locating all intervening delta increments between the time reference and the nearest mirror, the intervening delta increments including both inherited blocks of data and literal blocks of data, the inherited blocks of data including; data that has not changed relative to a temporally previous delta increment, or data that has not changed since the creation of the nearest mirror when the delta increment is temporally adjacent to the nearest mirror, the literal blocks of data indicative of; data that has changed since the creation of a temporally adjacent delta increment, or data that has changed since the creation of the nearest mirror when the delta increment is temporally adjacent to the nearest mirror; opening the located intervening delta increments such that all intervening delta increments are open at the same time; determining offsets and lengths for both the inherited blocks and the literal blocks in each of the opened intervening delta increments, while all intervening delta increments are open; analyzing each of the intervening delta increments in reverse chronological order beginning with the intervening delta increment temporally adjacent to the time reference, while all intervening delta increments are open; inheriting the inherited blocks in reverse chronological order based on the analysis of each of the delta increments in turn, until encountering a literal block in either an intervening delta increment or the nearest mirror, while all intervening delta increments are open; and copying the encountered literal block into a restored file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for restoring a file at an arbitrary time reference preceding a data loss event, the system comprising:
-
a file locator module configured for identifying; a mirror that is a complete backup of the file at a time before the arbitrary time reference, a plurality of reverse incremental delta increments indicative of changes to the mirror subsequent to the mirror and preceding the arbitrary time reference, the reverse incremental delta increments including; literal blocks each comprising an indication of data that has changed since creation of a preceding temporally adjacent reverse incremental delta increment, and inherited blocks each comprising metadata indicating an offset and a length of a block of data that has not been modified relative to the mirror, and a prime delta increment being a reverse incremental delta increment of the plurality of reverse incremental delta increments that is temporally adjacent to the arbitrary time reference; a parsing module configured for; opening the mirror, opening the plurality of the reverse incremental delta increments such that they are all open at the same time as the mirror, evaluating the open reverse incremental delta increments and the mirror in reverse chronological order for blocks of data comprising the literal blocks and the inherited blocks, and determining offsets and lengths of each of the inherited and the literal blocks; and a restoration module for; receiving the parsed data from the parsing module, assembling a single representative reverse incremental delta increment that represents the plurality of open reverse incremental delta increments, deleting the plurality of reverse incremental delta increments represented by the single representative reverse incremental delta increment, and restoring the file from the mirror and the single representative reverse incremental delta increment. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method for generating a restored file at an arbitrary time reference, the method comprising:
-
locating all intervening incremental delta increments between the arbitrary time reference and a mirror of the file to be restored, the mirror including all blocks of data corresponding to the file to be restored, the intervening incremental delta increments including both inherited blocks of data and literal blocks of data; after locating all intervening incremental delta increments, opening the located intervening incremental delta increments and the mirror such that all intervening incremental delta increments are open at the same time as the mirror; after opening all the located intervening incremental delta increments and the mirror, analyzing each of the intervening incremental delta increments and the mirror in turn in reverse chronological order while the mirror and all intervening incremental delta increments are open; after analyzing the intervening incremental delta increments and the mirror, identifying locations of the inherited and the literal blocks of data in the open intervening incremental delta increments and the mirror that are to be copied into the restored file based on the analysis; and after identifying all the locations of the inherited and the literal blocks of data, copying the identified inherited and the identified literal blocks of data from the identified locations into the restored file. - View Dependent Claims (17, 18, 19, 20)
-
Specification