IP Library Granted Patent US 9,274,896
Granted Patent B2
US 9,274,896 · App. 14/450,951 · Granted Mar 1, 2016

Versioned file system with fast restore

Inventors: Robert S. Mason, Jr. (Uxbridge, MA); David M. Shaw (Newton, MA); Kevin W. Baughman (Natick, MA); Stephen Fridella (Watertown, MA)
Assignee: Nasuni Corporation
G06F11/1448G06F17/3023
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 9,274,896
App. No.
14/450,951
Granted
Mar 1, 2016
Kind
B2
Abstract

A versioned file system comprises a set of structured data representations. Each structured data representation corresponds to a version, and each version comprises a tree of write-once objects. Each version in the versioned file system has associated therewith a borrow window. When it is desired to reconstruct the file system to a point in time, i.e., to perform a “restore,” it is only required to walk a single structured data representation. During a restore, metadata is pulled back from the cloud first, so users can see the existence of needed files immediately. The remainder of the data is pulled back from the cloud when the user goes to open the file. As a result, the entire file system is restored to a previous time nearly instantaneously. A fast restore is performed if an object being restored exists within a borrow window of the version from which the system is restoring.

Claims (39)

1. A non-transitory computer-readable medium having stored thereon program instructions that, when executed by a processor, cause the processor to:

perform operations associated with a versioned file system comprising a set of versions, wherein each version comprises a tree of write-once objects, wherein versions share objects, and wherein each version has a borrow window associated therewith, the borrow window identifying a fixed number of subsequent file system versions from which an object can be shared;

in response to a receipt of a request to restore a portion of a prior version of the versioned file system, return file and directory metadata of the restored portion prior to returning contents of the restored portion;

determine whether a current version of the file system is within the respective borrow windows of shared objects associated with the restored portion;

if the current version of the file system is within the respective borrow windows of the shared objects associated with the restored portion, restore the contents of the restored portion without overwriting data in the current version by associating the shared objects for the restored portion with a new location in the versioned file system, wherein the association results in first and second identifiers within the versioned file system pointing to identical data objects in the restored portion, the first and second identifiers associated with the prior version and a new version, respectively;

if the current version does not exist within the respective borrow windows of the shared objects associated with the restored portion, perform a slow restore of the restored portion; and

upon receipt of a request to open the restored portion that is distinct from the request to restore, return the contents of the restored portion regardless of whether current version exists within the respective borrow windows.

2. The computer-readable medium as described in claim 1 wherein a borrow window of a first version differs from a borrow window of a second version.

3. The computer-readable medium as described in claim 1 wherein the restored portion is one of: a file, and a portion of a file.

4. The computer-readable medium as described in claim 1 further including program code operative to provide a web-based interface, wherein the request is initiated from the web-based interface.

5. The computer-readable medium as described in claim 1 wherein the restored portion comprises a directory.

6. The computer-readable medium as described in claim 1 wherein the metadata is only for the restored portion.

7. A method of restoring a file in a versioned file system, the method comprising:

receiving a request to restore a portion of a prior version of the versioned file system;

returning file and directory metadata of the restored portion prior to returning contents of the restored portion;

stitching the file and directory metadata into a current version of the versioned file system such that the current version appears to include the restored portion prior to returning the contents of the restored portion;

determining whether the current version of the file system is within the respective borrow windows of shared objects associated with the restored portion;

if the current version of the file system is within the respective borrow windows of the shared objects associated with the restored portion, restoring the contents of the restored portion without overwriting data in the current version by associating the shared objects for the restored portion with a new location in the versioned file system, wherein the association results in first and second identifiers within the versioned file system pointing to identical data objects in the restored portion, the first and second identifiers associated with the prior version and a new version, respectively;

if the current version does not exist within the respective restore borrow windows of the shared objects associated with the restored portion, performing a slow restore of the restored portion; and

receiving a request to open the restored portion that is distinct from the request to restore; and

in response to receiving the request to open the restored portion, returning the contents of the restored portion regardless of whether the current version exists within the respective borrow windows.

8. The method of claim 7 wherein a borrow window of a first version differs from a borrow window of a second version.

9. The method of claim 7 wherein the restored portion is one of: a file, and a portion of a file.

10. The method of claim 7 further comprising receiving the request from a web-based interface.

11. The method of claim 7 wherein the restored portion comprises a directory.

12. The method of claim 7 wherein the metadata is only for the restored portion.

13. A system comprising:

a processor; and

a memory having program instructions stored thereon that, when executed by the processor, cause the processor to:

perform operations associated with a versioned file system comprising a set of versions, wherein each version comprises a tree of write-once objects, wherein versions share objects, and wherein each version has a borrow window associated therewith the borrow window identifying a fixed number of subsequent file system versions from which an object can be shared;

in response to a receipt of a request to restore a portion of a prior version of the versioned file system, return file and directory metadata of the restored portion prior to returning contents of the restored portion;

determine whether a current version of the file system is within the respective borrow windows of shared objects associated with the restored portion;

if the current version of the file system is within the respective borrow windows of the shared objects associated with the restored portion, restore the contents of the restored portion without overwriting data in the current version by associating the shared objects for the restored portion with a new location in the versioned file system, wherein the association results in first and second identifiers within the versioned file system pointing to identical data objects in the restored portion, the first and second identifiers associated with the prior version and a new version, respectively;

if the current version does not exist within the respective restore borrow windows of the shared objects associated with the restored portion, perform a slow restore of the restored portion; and

in response to receiving the request to open the restored portion, return the contents of the restored portion regardless of whether the current version exists within the respective borrow windows.

14. The system of claim 13 wherein a borrow window of a first version differs from a borrow window of a second version.

15. The system of claim 13 wherein the restored portion is one of: a file, and a portion of a file.

16. The system of claim 13 wherein the restored portion comprises a directory.

17. The system of claim 13 wherein the metadata is only for the restored portion.

Assignments (2)
PATENT SECURITY AGREEMENT Recorded Sep 12, 2024
From: NASUNI CORPORATION
To: AB PRIVATE CREDIT INVESTORS LLC, AS COLLATERAL AGENT
Reel/Frame 068947/0138 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2014
From: MASON, ROBERT S., JR; SHAW, DAVID M.; BAUGHMAN, KEVIN W.; FRIDELLA, STEPHEN
To: NASUNI CORPORATION
Reel/Frame 033457/0845 →
Continuity (2)
Continuation 12871198 · Aug 30, 2010
Related Publication 20150120675A1 · Apr 30, 2015