# US 11,442,894 B2 · Methods for scalable file backup catalogs and devices thereof

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

- Number: US 11,442,894 B2
- Document ID: US11442894B2
- Status: Granted
- Kind: B2
- Application number: 16/750,048
- Filed: 2020-01-23
- Published: 2021-04-08
- Granted: 2022-09-13
- Earliest claimed: 2019-10-02
- Assignees: NetApp, Inc.
- Applicants: NetApp, Inc.
- Inventors: Nikhil Bhavadas Kaplingat; Ravindra Kuramkote; Amarnath Rachapudi; Subhabrata Sen
- Web page: https://patentgrep.com/patent/US11442894B2

## 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 11/1435: {using file system or storage system metadata}
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1461: {Backup scheduling policy}
- G06F 11/1464: {for networked environments}
- G06F 11/1469: {Backup restoration techniques}
- G06F 16/113: {Details of archiving (lifecycle management in storage systems G06F3/0649; point-in-time backing up or restoration of persistent data G06F11/1446)}
- G06F 16/1734: {Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs}
- G06F 16/1824: {implemented using Network-attached Storage [NAS] architecture (distributed or networked storage systems G06F3/067; protocols for distributed storage of data in a network H04L67/1097)}
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, non-transitory machine readable media, and computing devices that provide file backup catalogs with improved scalability are disclosed. With this technology, a sequence number is incremented and an entry for a snapshot associated with obtained metadata for the snapshot is generated. The snapshot entry comprises a snapshot identifier for the snapshot and the incremented sequence number. A current version flag is then set in another entry for a file associated with a create event identified in the metadata. The file entry includes a file identifier for the file, a create attribute comprising the incremented sequence number, and a delete attribute. The file and snapshot entries are then inserted into indice(s) in a catalog database. Based on the schema of the indice(s), this technology provides a lightweight, elegant, and highly scalable catalog that more efficiently facilitates full path global file search and restore functionality with reduced resource utilization.

## Claims

### Claim 1

A method, comprising:
incrementing, by a computing device, a stored sequence number associated with a storage volume after receipt of metadata for a first snapshot generated for the storage volume, wherein the snapshot metadata comprises a snapshot identifier;
generating, by the computing device, a snapshot entry for the first snapshot in a stored snapshot-mapping index, wherein the snapshot entry comprises the snapshot identifier and the incremented sequence number;
setting, by the computing device, a first current version flag in a first file entry of a stored object-mapping index for a file associated with a modify event identified in the snapshot metadata, wherein the first file entry further comprises a file identifier for the file and a first create attribute comprising the incremented sequence number;
resetting, by the computing device, a second current version flag in a second file entry of the stored object-mapping index for the file, wherein the second file entry further comprises the file identifier and a first delete attribute comprising the incremented sequence number; and
returning, by the computing device, in response to a received selection from a prior version of the file associated with the second file entry and a current version of the file, the file retrieved from the first snapshot, wherein the first snapshot is identified based on the first create attribute and the snapshot identifier in the snapshot entry.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first file entry further comprises a second delete attribute that comprises a default value upon creation of the first file entry.

### Claim 3 (depends on 1)

The method of claim 1, wherein other metadata for a second snapshot generated for the storage volume comprises a file delete event associated with the file and the method further comprises setting, by the computing device, the second delete attribute based on another sequence number associated with the second snapshot.

### Claim 4 (depends on 1)

The method of claim 1, further comprising outputting, by the computing device, via a graphical user interface and in response to a received request, an indication of each of the prior and current versions of the file for selection.

### Claim 5 (depends on 1)

The method of claim 1, wherein other snapshot metadata comprises a file create event for the file and the method further comprises setting, by the computing device, the second current version flag.

### Claim 6 (depends on 1)

The method of claim 1, wherein the second file entry comprises a second create attribute comprising another sequence number that is less than the incremented sequent number.

### Claim 7

A non-transitory machine readable medium having stored thereon instructions for scalable file backup catalogs, the instructions comprising machine executable code that, when executed by at least one machine, causes the machine to:
increment a stored sequence number associated with a storage volume after receipt of metadata for a first snapshot generated for the storage volume, wherein the snapshot metadata comprises a snapshot identifier;
generate a snapshot entry for the first snapshot in a stored snapshot-mapping index, wherein the snapshot entry comprises the snapshot identifier and the incremented sequence number;
set a first current version flag in a first file entry of a stored object-mapping index for a file associated with a modify event identified in the snapshot metadata, wherein the first file entry further comprises a file identifier for the file and a first create attribute comprising the incremented sequence number;
reset a second current version flag in a second file entry of the stored object-mapping index for the file, wherein the second file entry further comprises the file identifier and a first delete attribute comprising the incremented sequence number; and
return in response to a received selection from a prior version of the file associated with the second file entry and a current version of the file, the file retrieved from the first snapshot, wherein the first snapshot is identified based on the first create attribute and the snapshot identifier in the snapshot entry.

### Claim 8 (depends on 7)

The non-transitory machine readable medium of claim 7, wherein the first file entry further comprises a second delete attribute that comprises a default value upon creation of the first file entry.

### Claim 9 (depends on 7)

The non-transitory machine readable medium of claim 7, wherein other metadata for a second snapshot generated for the storage volume comprises a file delete event associated with the file and the machine executable code, when executed by the machine, further causes the machine to set the second delete attribute based on another sequence number associated with the second snapshot.

### Claim 10 (depends on 7)

The non-transitory machine readable medium of claim 7, wherein the machine executable code, when executed by the machine, further causes the machine to output, via a graphical user interface and in response to a received request, an indication of each of the prior and current versions of the file for selection.

### Claim 11 (depends on 7)

The non-transitory machine readable medium of claim 7, wherein other snapshot metadata comprises a file create event for the file and the machine executable code, when executed by the machine, further causes the machine to set the second current version flag.

### Claim 12 (depends on 7)

The non-transitory machine readable medium of claim 7, wherein the second file entry comprises a second create attribute comprising another sequence number that is less than the incremented sequent number.

### Claim 13

A computing device, comprising:
a memory containing machine readable medium comprising machine executable code having stored thereon instructions for scalable file backup catalogs; and
a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:
increment a stored sequence number associated with a storage volume after receipt of metadata for a first snapshot generated for the storage volume, wherein the snapshot metadata comprises a snapshot identifier;
generate a snapshot entry for the first snapshot in a stored snapshot-mapping index, wherein the snapshot entry comprises the snapshot identifier and the incremented sequence number;
set a first current version flag in a first file entry of a stored object-mapping index for a file associated with a modify event identified in the snapshot metadata, wherein the first file entry further comprises a file identifier for the file and a first create attribute comprising the incremented sequence number;
reset a second current version flag in a second file entry of the stored object-mapping index for the file, wherein the second file entry further comprises the file identifier and a first delete attribute comprising the incremented sequence number; and
return in response to a received selection from a prior version of the file associated with the second file entry and a current version of the file, the file retrieved from the first snapshot, wherein the first snapshot is identified based on the first create attribute and the snapshot identifier in the snapshot entry.

### Claim 14 (depends on 13)

The computing device of claim 13, wherein the first file entry further comprises a second delete attribute that comprises a default value upon creation of the first file entry.

### Claim 15 (depends on 13)

The computing device of claim 13, wherein other metadata for a second snapshot generated for the storage volume comprises a file delete event associated with the file and the processor is further configured to execute the machine executable code to further cause the processor to set the second delete attribute based on another sequence number associated with the second snapshot.

### Claim 16 (depends on 13)

The computing device of claim 13, wherein the processor is further configured to execute the machine executable code to further cause the processor to output, via a graphical user interface and in response to a received request, an indication of each of the prior and current versions of the file for selection.

### Claim 17 (depends on 13)

The computing device of claim 13, wherein other snapshot metadata comprises a file create event for the file and the processor is further configured to execute the machine executable code to further cause the processor to set the second current version flag.

### Claim 18 (depends on 13)

The computing device of claim 13, wherein the second file entry comprises a second create attribute comprising another sequence number that is less than the incremented sequent number.

### Claim 19 (depends on 18)

The computing device of claim 18, wherein the processor is further configured to execute the machine executable code to further cause the processor to identify a plurality of file entries in the object-mapping index for the file in response to a received search request comprising one or more parameters for the file, wherein each of the plurality of file entries corresponds to one of a plurality of versions of the file.

### Claim 20 (depends on 13)

The computing device of claim 13, wherein the processor is further configured to execute the machine executable code to further cause the processor to return the file in response to a received restore request comprising the file identifier, wherein the first snapshot is associated with a most recent sequence number in which the file is present.
