IP Library Granted Patent US 8,886,611
Granted Patent B2
US 8,886,611 · App. 13/363,234 · Granted Nov 11, 2014

Systems and methods for restoring a file

Inventor: Vito Caputo (Wheaton, IL)
Assignee: Axcient, Inc.
G06F11/1469G06F11/1451G06F2201/84
View Patent ↗
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 8,886,611
App. No.
13/363,234
Granted
Nov 11, 2014
Kind
B2
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 (37)

1. A method for restoring a metadata record from differential metadata, the method comprising:

identifying a first metadata snapshot associated with the metadata record, the first metadata snapshot including a plurality of nodes corresponding to metadata to be restored;

establishing a time sequence spanning between an arbitrary time reference and a time reference corresponding to the first metadata snapshot;

locating a plurality of differential metadata records created during the time sequence, the plurality of differential metadata records each including nodes corresponding to changes in metadata relative to the first metadata snapshot and one or more empty nodes corresponding to metadata inherited from temporally adjacent differential metadata records or the first metadata snapshot, wherein a node is representative of blocks of data, the node being defined by an offset and a length;

parsing the first metadata snapshot to determine the nodes and create an index for the metadata record to be restored;

opening the plurality of differential metadata records simultaneously;

iterating through each of the nodes of the plurality of differential metadata records;

deferring iteration when a node to be inherited by a second differential metadata record occurs before the currently inheriting node of a first differential metadata record temporally adjacent to the second differential metadata record, the deferring further including recursively iterating at the currently inheriting node of the first differential metadata record until all nodes of the first differential metadata record have been iterated;

inheriting the nodes of the first metadata snapshot, utilizing the index, in reverse chronological order relative to the nodes of the plurality of opened differential metadata records to determine changes between the first metadata snapshot and the metadata record to be restored; and

restoring the metadata record to the arbitrary time reference utilizing the determined changes.

2. The method according to claim 1 , further comprising creating one or more metadata snapshots of metadata at predetermined time intervals.

3. The method according to claim 1 , further comprising creating differential metadata records that includes changes to the metadata taken at secondary time intervals between metadata snapshots taken at predetermined time intervals.

4. The method according to claim 1 , wherein parsing includes iterating through each of the differential metadata records for each node of the first metadata snapshot, wherein a node currently being iterated is available for inheritance through each of the differential metadata records.

5. The method according to claim 1 , wherein if the metadata record to be restored includes differential metadata, the method includes:

locating a first metadata snapshot created before the arbitrary time reference and a second metadata snapshot created after the arbitrary time reference; and

establishing a time sequence spanning between the creation date of the first metadata snapshot and the creation date of the second metadata snapshot.

6. The method according to claim 5 , wherein when before a node is inherited by a differential metadata record from a metadata snapshot, the method includes synthesizing a null node for the metadata snapshot, the null node corresponding to absent nodes in the located differential metadata records.

7. The method according to claim 6 , wherein synthesizing includes parsing all nodes of the metadata snapshot prior to the differential metadata record inheriting the node to determine whether a node to be inherited is absent in the located differential metadata records.

8. A system for restoring a metadata record from differential metadata, the system comprising:

a network coupled to a server and one or more user devices requesting the restoration of the metadata record;

the server comprising a processor that executes instructions stored in memory, the memory comprising:

a file locator module adapted to:

identify a metadata snapshot associated with the metadata record, the metadata snapshot including a plurality of nodes corresponding to metadata;

establish a time sequence spanning between an arbitrary time reference and a time reference of the metadata snapshot; and

locate a plurality of differential metadata records created during the time sequence, the plurality of differential metadata records each including nodes corresponding to changes in the metadata relative to the first metadata snapshot and one or more empty nodes corresponding to metadata inherited from temporally adjacent differential metadata records or the first metadata snapshot, wherein a node is representative of blocks of data, the node being defined by an offset and a length;

a parsing module adapted to parse the metadata snapshot to determine the nodes and create an index for the metadata record to be restored by:

opening the plurality of differential metadata records simultaneously;

iterating through each of the nodes of the plurality of differential metadata records;

deferring iteration when a node to be inherited by a second differential metadata record occurs before the currently inheriting node of a first differential metadata record temporally adjacent to the second differential metadata record the deferring further including recursively iterating at the currently inheriting node of the first differential metadata record until all nodes of the first differential metadata record have been iterated; and

inheriting the nodes of the first metadata snapshot, utilizing the index, in reverse chronological order relative to the nodes of the plurality of opened differential metadata records to determine changes between the first metadata snapshot and the metadata record to be restored; and

a restoration engine adapted to restore a metadata record to the arbitrary time reference utilizing the determined changes.

9. The system according to claim 8 , wherein the parsing module is adapted to iterate through each of the differential metadata records for each node of the metadata snapshot, wherein a node currently being iterated is available for inheritance through each of the differential metadata record.

10. The system according to claim 8 , wherein if the system is adapted to restore a differential metadata record the file locator module is adapted to:

locate a first metadata snapshot created before the arbitrary time reference and a second metadata snapshot created after the arbitrary time reference; and

establish a time sequence spanning between the creation date of the first metadata snapshot and the creation date of the second metadata snapshot.

11. The system according to claim 8 , wherein when before a node is inherited by a differential metadata record from a metadata snapshot, the parsing module is adapted to synthesize a null node for the metadata snapshot, the null node corresponding to absent nodes in the one or more located differential metadata records.

12. The system according to claim 11 , wherein the parsing module is adapted to synthesize a null node by parsing all nodes of the located differential metadata records prior to the differential metadata record inheriting the node to determine whether a node to be inherited is absent in the located differential metadata records.

Assignments (15)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 19, 2025
From: SKYKICK, LLC; EFOLDER, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 070268/0489 →
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: AXCI (AN ABC) LLC
To: AXCIENT HOLDINGS, LLC
Reel/Frame 044368/0556 →
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 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 027796 FRAME: 0499. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 13, 2014
From: CAPUTO, VITO
To: AXCIENT, INC.
Reel/Frame 034238/0667 →
CHANGE OF ADDRESS Recorded Sep 24, 2014
From: AXCIENT, INC.
To: AXCIENT, INC.
Reel/Frame 033813/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2012
From: CAPUTO, VITO
To: AXCIENT, INC.
Reel/Frame 027796/0499 →
Continuity (2)
Division 12895275 · Sep 30, 2010
Related Publication 20120130956A1 · May 24, 2012