Versioned file system with fast restore
First Claim
1. A non-transitory computer-readable medium having stored thereon instructions that, when executed by a processor, perform a method associated with a versioned file system comprising a set of versions, wherein each version comprises a tree of write-once objects rooted at a root directory manifest, and wherein versions may share objects, a method comprising:
- associating a borrow window having a value to each of a set of versions in the versioned file system;
in response to receipt from a user of a request to restore a file from a version X in the versioned file system to a current version Y, evaluating whether the file exists within a borrow window of the version X by determining a version created of all chunks of the file in version X, wherein, for each chunk i, the version created of chunk i is set to Vi;
when the file exists within the borrow window of the version as evidenced by the borrow window value of current version Y minus the borrow window value of Vi being less than or equal to a borrow window value associated with Vi for each i, and in response to the request to restore, returning metadata associated with the file from the versioned file system so that the file has an appearance of being restored although contents of the file are not yet available to be provided to the user;
when the file does not exist within the borrow window, performing a slow restore of the file; and
upon receipt of a request to open the file that is distinct from the request to restore, returning contents of the file.
1 Assignment
0 Petitions
Accused Products
Abstract
A versioned file system comprises a set of structured data representations, such as XML. Each structured data representation corresponds to a “version,” and each version comprises a tree of write-once objects rooted at a root directory manifest. 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 (or, more generally, a given state), i.e., to perform a “restore,” it is only required to walk (use) a single structured data representation (a tree). 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 then pulled back from the cloud if/when the user goes to open the file. As a result, the entire file system (or any portion thereof) can be 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.
13 Citations
12 Claims
-
1. A non-transitory computer-readable medium having stored thereon instructions that, when executed by a processor, perform a method associated with a versioned file system comprising a set of versions, wherein each version comprises a tree of write-once objects rooted at a root directory manifest, and wherein versions may share objects, a method comprising:
-
associating a borrow window having a value to each of a set of versions in the versioned file system; in response to receipt from a user of a request to restore a file from a version X in the versioned file system to a current version Y, evaluating whether the file exists within a borrow window of the version X by determining a version created of all chunks of the file in version X, wherein, for each chunk i, the version created of chunk i is set to Vi; when the file exists within the borrow window of the version as evidenced by the borrow window value of current version Y minus the borrow window value of Vi being less than or equal to a borrow window value associated with Vi for each i, and in response to the request to restore, returning metadata associated with the file from the versioned file system so that the file has an appearance of being restored although contents of the file are not yet available to be provided to the user; when the file does not exist within the borrow window, performing a slow restore of the file; and upon receipt of a request to open the file that is distinct from the request to restore, returning contents of the file. - View Dependent Claims (2, 3, 4, 5)
-
-
6. Apparatus, comprising:
-
a processor; computer memory holding computer program instructions that when executed by the processor perform operations associated with a versioned file system, the versioned file system comprising a set of versions, wherein each version comprises a tree of write-once objects rooted at a root directory manifest, the computer program instructions comprising; program code to associate a borrow window having a value to each of a set of versions in the versioned file system; program code, operative in response to receipt from a user of a request to restore a file from a version in the versioned file system, to evaluate whether the file exists within a borrow window of the version X by determining a version created of all chunks of the file in version X, wherein, for each chunk i, the version created of chunk i is set to Vi; program code, operative when the file exists within the borrow window of the version as evidenced by the borrow window value of current version Y minus the borrow window value of Vi being less than or equal to a borrow window value associated with Vi for each i, and in response to the request to restore, to return metadata associated with the file from the versioned file system so that the file has an appearance of being restored although contents of the file are not yet available to be provided to the user; program code, operative when file does not exist within the borrow window, to perform a slow restore of the file; and program code, operative upon receipt of a request to open the file that is distinct from the request to restore, returning contents of the file. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method associated with a versioned file system comprising a set of versions, wherein each version comprises a tree of write-once objects rooted at a root directory manifest, and wherein versions may share objects, wherein each of set of versions in the versioned file system is associated with a borrow window having a value, comprising:
-
in response to receipt of a request to restore a file from a version X in the versioned file system to a current version Y, determining a version created of all chunks of the file in version X, wherein, for each chunk i in a manifest, the version created of chunk i is set to Vi; if, for each i, the borrow window value of current version Y minus the borrow window value of Vi is less than or equal to a borrow window value associated with V using a hardware element of a machine to perform a fast restore on the file; if, for each i, the borrow window value of current version Y minus the borrow window value of Vi is not less than or equal to a borrow window value associated with Vi, performing a slow restore on the file. - View Dependent Claims (12)
-
Specification