# US 2019/0377802 A1 · Managing per object snapshot coverage in filesystems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0377802 A1
- Document ID: US20190377802A1
- Status: Published application
- Kind: A1
- Application number: 16/004,182
- Filed: 2018-06-08
- Published: 2019-12-12
- Earliest claimed: 2018-06-08
- Assignees: Qumulo, Inc.
- Applicants: Qumulo, Inc.
- Inventors: Steven Henry Haber; John Brazel; Neal Thomas Fachan; Robert Edward Gebert; Zacharie Lamont Kirsch; Aaron James Passey; Thomas Scott Urban
- Web page: https://patentgrep.com/patent/US20190377802A1

## CPC

- G06F 16/128: {Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion (error detection or correction of the data by redundancy in operations or in hardware G06F11/14, G06F11/16)}
- G06F 16/162: {Delete operations (erasing in storage systems G06F3/0652)}
- G06F 16/183: {Provision of network file services by network file servers, e.g. by using NFS, CIFS (network file access protocols H04L67/1097)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments are directed to managing data in a file system. An object from the file system that has parent objects may be provided. A snapshot in a current epoch may be generated such that the first snapshot may be based on the object and descendants of the object. A coverage set may be provided for the object that references the snapshot and also references each other snapshot that includes the parent objects. Read-only access to a version of the object may be provided based on a correspondence of the version and a snapshot referenced by the coverage set of the object. A coverage engine compares the update to a coverage update epoch (cue) associated with the parent objects. The coverage engine updates coverage sets of the parent objects based on grandparents of the object.

## Claims

### Claim 1

A method for managing data in a file system over a network using one or more processors that execute instructions to perform actions, comprising:
instantiating a file system engine to perform further actions, including:
providing an object from the file system that has one or more parent objects, wherein each object includes one or more entities;
generating a first snapshot in a current epoch, wherein the first snapshot is based on the object and one or more descendants of the object, wherein each epoch refers to a time period in between snapshots or before a next snapshot;
providing a first coverage set, for the object, that references the first snapshot and also references each other snapshot that includes the one or more parent objects;
providing read-only access to a version of the object based on a correspondence of the version and a snapshot referenced by the first coverage set of the object, wherein the snapshot referenced by the first coverage set is employed to increase granularity of the snapshot by covering one or more portions of the file system instead of the entire file system to reduce one or more of a size of the snapshot that is stored, reduce an amount of time to generate the snapshot, or create the snapshot at different rates or times than other snapshots that cover one or more other portions of the file system; and
instantiating a coverage engine in response to an update to the one or more entities of the object, wherein the coverage engine performs further actions, comprising:
comparing the update to one or more entities of a coverage update epoch associated with the one or more parent objects; and
updating one or more coverage sets of the one or more parent objects based on one or more grandparents of the object.

### Claim 2 (depends on 1)

The method of claim 1, wherein the actions performed by the file system engine, further comprise:
providing a representative coverage set that is associated with one or more descendant objects, wherein the representative coverage set references the coverage set that includes the object; and
providing read-only version of the one or more descendant objects based on the coverage set, wherein the version corresponds to a snapshot that is referenced in the coverage set.

### Claim 3 (depends on 1)

The method of claim 1, wherein generating the first snapshot, further comprises:
closing an epoch of the file system, wherein the closed epoch was the current epoch;
starting a new epoch of the file system; and
associating an identity of the closed epoch with the snapshot.

### Claim 4 (depends on 1)

The method of claim 1, wherein the file system engine to performs further actions, comprising:
moving an other object to a location in the file system that associates one or more different parent objects with the other object, wherein a second coverage set associated with one or more new parent objects is different than a third coverage set associated with one or more previous parent objects of the other object; and
providing a primary coverage set that references each snapshot that includes the one or more parent objects and the one or more previous parent objects.

### Claim 5 (depends on 1)

The method of claim 1, wherein the file system engine to performs further actions, comprising:
providing one or more objects for deletion;
updating one or more coverage sets associated with the one or more objects based on each of their parent objects;
adding the one or more objects to a dead object data store, wherein the one or more objects remain associated with snapshots that are referenced in their one or more coverage sets; and
deleting the one or more objects from the file system.

### Claim 6 (depends on 1)

The method of claim 1, wherein the file system engine to performs further actions, comprising:
providing one or more snapshots for deletion;
determining one or more objects that are included in the one or more snapshots that are provided for deletion;
disassociating the one or more objects from the one or more snapshots that are provided for deletion; and
deleting the one or more snapshots provided for deletion.

### Claim 7 (depends on 1)

The method of claim 1, wherein the file system engine performs further actions, including generating new snapshots based on one or more of a schedule, a rule-based policy, or a user-input.

### Claim 8

A system for managing data in a file system over a network, comprising:
a network computer, comprising:
a memory that stores at least instructions; and
one or more processors that execute instructions that perform actions, including:
instantiating a file system engine to perform further actions, including:
providing an object from the file system that has one or more parent objects, wherein each object includes one or more entities;
generating a first snapshot in a current epoch, wherein the first snapshot is based on the object and one or more descendants of the object;
providing a first coverage set, for the object, that references the first snapshot and also references each other snapshot that includes the one or more parent objects;
providing read-only access to a version of the object based on a correspondence of the version and a snapshot referenced by the first coverage set of the object, wherein the snapshot referenced by the first coverage set is employed to increase granularity of the snapshot by covering one or more portions of the file system instead of the entire file system to reduce one or more of a size of the snapshot that is stored, reduce an amount of time to generate the snapshot, or create the snapshot at different rates or times than other snapshots that cover one or more other portions of the file system; and
instantiating a coverage engine in response to an update to the one or more entities of the object, wherein the coverage engine performs further actions, comprising:
comparing the update to one or more entities of a coverage update epoch associated with the one or more parent objects; and
updating one or more coverage sets of the one or more parent objects based on one or more grandparents of the object; and
a client computer, comprising:
a memory that stores at least instructions; and
one or more processors that execute instructions that perform actions, including:
receiving, read-only access version of the object.

### Claim 9 (depends on 8)

The system of claim 8, wherein the actions performed by the file system engine, further comprise:
providing a representative coverage set that is associated with one or more descendant objects, wherein the representative coverage set references the coverage set that includes the object; and
providing read-only version of the one or more descendant objects based on the coverage set, wherein the version corresponds to a snapshot that is referenced in the coverage set.

### Claim 10 (depends on 8)

The system of claim 8, wherein generating the first snapshot, further comprises:
closing an epoch of the file system, wherein the closed epoch was the current epoch;
starting a new epoch of the file system; and
associating an identity of the closed epoch with the snapshot.

### Claim 11 (depends on 8)

The system of claim 8, wherein the file system engine to performs further actions, comprising:
moving an other object to a location in the file system that associates one or more different parent objects with the other object, wherein a second coverage set associated with one or more new parent objects is different than a third coverage set associated with one or more previous parent objects of the other object; and
providing a primary coverage set that references each snapshot that includes the one or more parent objects and the one or more previous parent objects.

### Claim 12 (depends on 8)

The system of claim 8, wherein the file system engine to performs further actions, comprising:
providing one or more objects for deletion;
updating one or more coverage sets associated with the one or more objects based on each of their parent objects;
adding the one or more objects to a dead object data store, wherein the one or more objects remain associated with snapshots that are referenced in their one or more coverage sets; and
deleting the one or more objects from the file system.

### Claim 13 (depends on 8)

The system of claim 8, wherein the file system engine to performs further actions, comprising:
providing one or more snapshots for deletion;
determining one or more objects that are included in the one or more snapshots that are provided for deletion;
disassociating the one or more objects from the one or more snapshots that are provided for deletion; and
deleting the one or more snapshots provided for deletion.

### Claim 14 (depends on 8)

The system of claim 8, wherein the file system engine performs further actions, including generating new snapshots based on one or more of a schedule, a rule-based policy, or a user-input.

### Claim 15

A processor readable non-transitory storage media that includes instructions for managing data in a file system over a network, wherein execution of the instructions by one or more processors on one or more network computers performs actions, comprising:
instantiating a file system engine to perform further actions, including:
providing an object from the file system that has one or more parent objects, wherein each object includes one or more entities;
generating a first snapshot in a current epoch, wherein the first snapshot is based on the object and one or more descendants of the object;
providing a first coverage set, for the object, that references the first snapshot and also references each other snapshot that includes the one or more parent objects;
providing read-only access to a version of the object based on a correspondence of the version and a snapshot referenced by the first coverage set of the object, wherein the snapshot referenced by the first coverage set is employed to increase granularity of the snapshot by covering one or more portions of the file system instead of the entire file system to reduce one or more of a size of the snapshot that is stored, reduce an amount of time to generate the snapshot, or create the snapshot at different rates or times than other snapshots that cover one or more other portions of the file system; and
instantiating a coverage engine in response to an update to the one or more entities of the object, wherein the coverage engine performs further actions, comprising:
comparing the update to one or more entities of a coverage update epoch associated with the one or more parent objects; and
updating one or more coverage sets of the one or more parent objects based on one or more grandparents of the object.

### Claim 16 (depends on 15)

The media of claim 15, wherein the actions performed by the file system engine, further comprise:
providing a representative coverage set that is associated with one or more descendant objects, wherein the representative coverage set references the coverage set that includes the object; and
providing read-only version of the one or more descendant objects based on the coverage set, wherein the version corresponds to a snapshot that is referenced in the coverage set.

### Claim 17 (depends on 15)

The media of claim 15, wherein generating the first snapshot, further comprises:
closing an epoch of the file system, wherein the closed epoch was the current epoch;
starting a new epoch of the file system; and
associating an identity of the closed epoch with the snapshot.

### Claim 18 (depends on 15)

The media of claim 15, wherein the file system engine to performs further actions, comprising:
moving an other object to a location in the file system that associates one or more different parent objects with the other object, wherein a second coverage set associated with one or more new parent objects is different than a third coverage set associated with one or more previous parent objects of the other object; and
providing a primary coverage set that references each snapshot that includes the one or more parent objects and the one or more previous parent objects.

### Claim 19 (depends on 15)

The media of claim 15, wherein the file system engine to performs further actions, comprising:
providing one or more objects for deletion;
updating one or more coverage sets associated with the one or more objects based on each of their parent objects;
adding the one or more objects to a dead object data store, wherein the one or more objects remain associated with snapshots that are referenced in their one or more coverage sets; and
deleting the one or more objects from the file system.

### Claim 20 (depends on 15)

The media of claim 15, wherein the file system engine to performs further actions, comprising:
providing one or more snapshots for deletion;
determining one or more objects that are included in the one or more snapshots that are provided for deletion;
disassociating the one or more objects from the one or more snapshots that are provided for deletion; and
deleting the one or more snapshots provided for deletion.

### Claim 21 (depends on 15)

The media of claim 15, wherein the file system engine performs further actions, including generating new snapshots based on one or more of a schedule, a rule-based policy, or a user-input.

### Claim 22

A network computer for managing data in a file system over a network, comprising:
a memory that stores at least instructions; and
one or more processors that execute instructions that perform actions, including:
instantiating a file system engine to perform further actions, including:
providing an object from the file system that has one or more parent objects, wherein each object includes one or more entities;
generating a first snapshot in a current epoch, wherein the first snapshot is based on the object and one or more descendants of the object;
providing a first coverage set, for the object, that references the first snapshot and also references each other snapshot that includes the one or more parent objects;
providing read-only access to a version of the object based on a correspondence of the version and a snapshot referenced by the first coverage set of the object, wherein the snapshot referenced by the first coverage set is employed to increase granularity of the snapshot by covering one or more portions of the file system instead of the entire file system to reduce one or more of a size of the snapshot that is stored, reduce an amount of time to generate the snapshot, or create the snapshot at different rates or times than other snapshots that cover one or more other portions of the file system; and
instantiating a coverage engine in response to an update to the one or more entities of the object, wherein the coverage engine performs further actions, comprising:
comparing the update to one or more entities of a coverage update epoch associated with the one or more parent objects; and
updating one or more coverage sets of the one or more parent objects based on one or more grandparents of the object.

### Claim 23 (depends on 22)

The network computer of claim 22, wherein the actions performed by the file system engine, further comprise:
providing a representative coverage set that is associated with one or more descendant objects, wherein the representative coverage set references the coverage set that includes the object; and
providing read-only version of the one or more descendant objects based on the coverage set, wherein the version corresponds to a snapshot that is referenced in the coverage set.

### Claim 24 (depends on 22)

The network computer of claim 22, wherein generating the first snapshot, further comprises:
closing an epoch of the file system, wherein the closed epoch was the current epoch;
starting a new epoch of the file system; and
associating an identity of the closed epoch with the snapshot.

### Claim 25 (depends on 22)

The network computer of claim 22, wherein the file system engine to performs further actions, comprising:
moving an other object to a location in the file system that associates one or more different parent objects with the other object, wherein a second coverage set associated with one or more new parent objects is different than a third coverage set associated with one or more previous parent objects of the other object; and
providing a primary coverage set that references each snapshot that includes the one or more parent objects and the one or more previous parent objects.

### Claim 26 (depends on 22)

The network computer of claim 22, wherein the file system engine to performs further actions, comprising:
providing one or more objects for deletion;
updating one or more coverage sets associated with the one or more objects based on each of their parent objects;
adding the one or more objects to a dead object data store, wherein the one or more objects remain associated with snapshots that are referenced in their one or more coverage sets; and
deleting the one or more objects from the file system.

### Claim 27 (depends on 22)

The network computer of claim 22, wherein the file system engine to performs further actions, comprising:
providing one or more snapshots for deletion;
determining one or more objects that are included in the one or more snapshots that are provided for deletion;
disassociating the one or more objects from the one or more snapshots that are provided for deletion; and
deleting the one or more snapshots provided for deletion.

### Claim 28 (depends on 22)

The network computer of claim 22, wherein the file system engine performs further actions, including generating new snapshots based on one or more of a schedule, a rule-based policy, or a user-input.
