Versioned file system with fast restore

US9274896B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9274896-B2
Application numberUS-201414450951-A
CountryUS
Kind codeB2
Filing dateAug 4, 2014
Priority dateAug 30, 2010
Publication dateMar 1, 2016
Grant dateMar 1, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

Having described our invention, what we now claim is as follows: 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.

Assignees

Inventors

Classifications

  • Physics · mapped topic

  • Management of the data involved in backup or backup restore · CPC title

  • Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9274896B2 cover?
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 require…
Who is the assignee on this patent?
Nasuni Corp
What technology area does this patent fall under?
Primary CPC classification G06F11/1448. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 01 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).