US2015046404A1PendingUtilityA1
Systems and methods for restoring a file
Est. expirySep 30, 2030(~4.2 yrs left)· nominal 20-yr term from priority
Inventors:Vito Caputo
G06F 11/1448G06F 11/1451G06F 2201/84G06F 11/1469G06F 16/128
56
PatentIndex Score
0
Cited by
0
References
0
Claims
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.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method for synthesizing a differential metadata record from two or more metadata snapshot records, the method comprising:
locating a first metadata snapshot record including an ordered and complete record of all metadata for all nodes present in a first mirror; locating a second metadata snapshot record subsequent to the first metadata snapshot record, and including an ordered and complete record of all metadata for all nodes present in a second mirror; locating all intervening differential metadata records between the first and second metadata snapshot record, each differential metadata record including an ordered and partial record of all nodes different from the first metadata snapshot record, changes to the metadata in the differential metadata records being subsequent to the first metadata snapshot record and preceding the second metadata record; opening the located differential metadata records such that all the located differential metadata records are open at the same time; iteratively and recursively parsing nodes of the located first and second metadata snapshot records and the located differential metadata records; synthesizing metadata for the differential metadata record being synthesized based on the parsed nodes; ignoring inherited nodes of the differential metadata record if the metadata record being iterated is a differential metadata record; and evaluating the nodes applied as a synthesized differential metadata record of the first metadata snapshot record if the metadata record being iterated is a metadata snapshot record.
2 . The method of claim 1 , further comprising generating a null metadata entry for the node currently being inherited if it is determined that one or more iterated nodes are unaligned, between the second metadata snapshot record and the first metadata snapshot record, to indicate absence of the node currently being inherited in the second metadata snapshot record.
3 . The method of claim 1 , further comprising applying the node currently being inherited as a differential metadata record if the node occurs before an aligned node of the first metadata snapshot record for which the metadata is being synthesized.
4 . The method of claim 1 , wherein parsing comprises:
iterating in reverse chronological order through each of the differential metadata records beginning with a most recent differential metadata record for each node present in the second metadata snapshot; and making the node currently being iterated available for inheritance through to previous differential metadata records.
5 . The method of claim 4 , wherein parsing further comprises deferring inheritance of a particular node if the next node in a preceding differential metadata record occurs before the node that is currently being iterated.
6 . The method of claim 5 , wherein upon encountering such a node, deferring iteration of the node that is currently being iterated by recursing unto the differential metadata record being iterated until the recursion meets or exceeds the node currently being inherited, or until all nodes in the currently being iterated differential metadata record have been processed.
7 . The method of claim 4 , further comprising:
evaluating each node present in the second metadata snapshot; and generating an index that is utilized to inherit nodes in reverse chronological order back through each of the opened differential metadata records based on the evaluated nodes.
8 . The method of claim 4 , further comprising:
ordering the file handles of the second metadata snapshot and the opened differential metadata records in reverse chronological order; placing the metadata first snapshot at an end of an array; and determining a threshold for determining and end point for analyzing the nodes of the second metadata snapshot and the opened differential metadata records using the array.
9 . A method for synthesizing a differential metadata record for a time between two differential metadata records:
at time one:
identifying a first metadata snapshot record including an ordered and complete record of all metadata for all nodes present in a first mirror;
locating a second metadata snapshot record subsequent to the first metadata snapshot record, and including an ordered and complete record of all metadata for all nodes present in a second mirror; and
locating all of a plurality of intervening differential metadata records occurring between the first and second metadata snapshot record, each differential metadata record including an ordered and partial record of all nodes different from the first metadata snapshot record, changes to the metadata in the differential metadata records being subsequent to the first metadata snapshot record and preceding the second metadata record;
at time two following time one:
opening the located differential metadata records such that all the located differential metadata records are open at the same time;
at time three following time two:
evaluating each node present in the second metadata snapshot; and
generating an index based on the evaluated nodes;
at time four following time three, synthesizing metadata for the differential metadata record being synthesized by:
iteratively and recursively parsing nodes of the located first and second metadata snapshot records and the located differential metadata records;
iterating in reverse chronological order through each of the opened differential metadata records beginning with the most recent differential metadata record for each node present in the metadata snapshot records;
making a node currently being iterated available for inheritance through to previous differential metadata records; and
inheriting nodes in reverse chronological order using the generated index, the nodes inherited back through each of the opened differential metadata records based on the evaluated nodes.
10 . The method of claim 9 , wherein synthesizing metadata at time four further comprises:
ignoring inherited nodes of the differential metadata record if the metadata record being iterated is a differential metadata record; and evaluating the nodes applied as a synthesized differential metadata record of the first metadata snapshot record if the metadata record being iterated is a metadata snapshot record.
11 . The method of claim 9 , further comprising generating a null metadata entry for a node currently being inherited if it is determined that one or more iterated nodes are unaligned, between the second metadata snapshot record and the first metadata snapshot record, to indicate absence of a node currently being inherited in the second metadata snapshot record.
12 . The method of claim 9 , further comprising applying the node currently being inherited as a differential metadata record if the node occurs before the aligned node of the first metadata snapshot record for which the metadata is being synthesized.
13 . The method of claim 9 , further comprising:
ordering the file handles of the second metadata snapshot and the opened differential metadata records in reverse chronological order; placing the metadata first snapshot at an end of an array; and determining a threshold for determining and end point for analyzing the nodes of the second metadata snapshot and the opened differential metadata records using the array.
14 . The method of claim 9 , wherein parsing further comprises deferring inheritance of a particular node if the next node in a preceding differential metadata record occurs before the node that is currently being iterated.
15 . The method of claim 14 , wherein upon encountering such a node, deferring iteration of the node that is currently being iterated by recursing unto the differential metadata record being iterated until the recursion meets or exceeds the node currently being inherited, or until all nodes in the currently being iterated differential metadata record have been processed.
16 . The method of claim 9 , further comprising:
locating a third metadata snapshot record subsequent to the second metadata snapshot record, and including an ordered and complete record of all metadata for all nodes present in a second mirror; segmenting the first, second, and third metadata snapshot records; applying the second metadata snapshot record as a differential metadata record in the synthesis; and using the second snapshot record as a suppressed metadata snapshot record, including null records, for inheritance in the next synthesis between the second metadata snapshot record and the third metadata snapshot record.
17 . A system for synthesizing an intermediate differential metadata record, the system comprising:
a file locator module configured to:
locate a first metadata snapshot record including an ordered and complete record of all metadata for all nodes present in a first mirror;
locate a second metadata snapshot record subsequent to the first metadata snapshot record, and including an ordered and complete record of all metadata for all nodes present in a second mirror;
locate all intervening differential metadata records between the first and second metadata snapshot record, each differential metadata record including an ordered and partial record of all nodes different from the first metadata snapshot record, changes to the metadata in the differential metadata records being subsequent to the first metadata snapshot record and preceding the second metadata record;
a parsing module configured to:
open the located differential metadata records such that all the located differential metadata records are open at a same time;
evaluate each node present in the second metadata snapshot;
generate an index based on the evaluation of the nodes;
iteratively and recursively parse nodes of the located first and second metadata snapshot records and the located differential metadata records, the parsing of the nodes comprising:
iterating in reverse chronological order through each of the opened differential metadata records beginning with a most recent differential metadata record for each node present in the metadata snapshot records;
making a node currently being iterated available for inheritance through to previous differential metadata records;
inheriting nodes in reverse chronological order using the generated index, the nodes inherited back through each of the opened differential metadata records based on the evaluated nodes;
ignoring the inherited nodes of the differential metadata record if the metadata record being iterated is a differential metadata record; and
evaluating the nodes applied as a synthesized differential metadata record of the first metadata snapshot record if the metadata record being iterated is a metadata snapshot record; and
synthesizing metadata for the differential metadata record being synthesized based on the parsed nodes.
18 . The system of claim 17 , wherein file locator module is further configured to:
order the file handles of the second metadata snapshot and the opened differential metadata records in reverse chronological order; and place the first metadata snapshot at an end of an array.
19 . The system of claim 18 , wherein the file locator module is further configured to determine a threshold for determining an end point for analyzing the nodes of the second metadata snapshot and the opened differential metadata records using the array.
20 . The system of claim 17 , wherein the parsing module is further configured to generate a null metadata entry for the node currently being inherited if it is determined that one or more iterated nodes are unaligned, between the second metadata snapshot record and the first metadata snapshot record, to indicate the absence of the node currently being inherited in the second metadata snapshot record.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.