IP Library Patent Application 14522527
Patent Application
App. No. 14/522,527

SYSTEMS AND METHODS FOR RESTORING A FILE

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
14/522,527
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 (75)

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.

Assignments (12)
RELEASE OF SECURITY INTEREST Recorded Sep 24, 2024
From: U.S. BANK NATIONAL ASSOCIATION FORMERLY MUFG UNION BANK, N.A.
To: EFOLDER, INC.
Reel/Frame 068680/0802 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: EFOLDER, INC.
Reel/Frame 061634/0623 →
SECURITY INTEREST Recorded Oct 27, 2022
From: EFOLDER, INC.
To: MUFG UNION BANK, N.A.
Reel/Frame 061559/0703 →
SECURITY INTEREST Recorded Jan 8, 2018
From: EFOLDER, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 044563/0633 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2017
From: AXCIENT HOLDINGS, LLC
To: EFOLDER, INC.
Reel/Frame 044370/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2017
From: AXCIENT, INC.
To: AXCI (AN ABC) LLC
Reel/Frame 044367/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2017
From: AXCI (AN ABC) LLC
To: AXCIENT HOLDINGS, LLC
Reel/Frame 044368/0556 →
RELEASE OF SECURITY INTEREST Recorded Oct 11, 2017
From: STRUCTURED ALPHA LP
To: AXCIENT, INC.
Reel/Frame 043840/0227 →
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2017
From: SILVER LAKE WATERMAN FUND, L.P.
To: AXCIENT, INC.
Reel/Frame 043106/0389 →
SECURITY INTEREST Recorded Jun 2, 2017
From: AXCIENT, INC.
To: SILVER LAKE WATERMAN FUND, L.P.
Reel/Frame 042577/0901 →
SECURITY INTEREST Recorded May 31, 2017
From: AXCIENT, INC.
To: STRUCTURED ALPHA LP
Reel/Frame 042542/0364 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2014
From: CAPUTO, VITO
To: AXCIENT, INC.
Reel/Frame 034103/0458 →