# US 12,007,845 B2 · Method and system for managing data slice backups based on grouping prioritization

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

- Number: US 12,007,845 B2
- Document ID: US12007845B2
- Status: Granted
- Kind: B2
- Application number: 17/872,526
- Filed: 2022-07-25
- Published: 2024-01-25
- Granted: 2024-06-11
- Earliest claimed: 2022-07-25
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Upanshu Singhal; Shelesh Chopra
- Web page: https://patentgrep.com/patent/US12007845B2

## CPC

- G06F 11/1458: {Management of the backup or restore process}
- G06F 11/1461: {Backup scheduling policy}
- G06F 11/1451: {by selection of backup contents}
- 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

Techniques described herein relate to a method for backing up a file system. The method includes identifying, by a backup manager, a backup generation event associated with a file system stored in a network-attached storage; in response to identifying the backup generation event: initiating performance of pre-backup tasks to obtain a snapshot of the file system and a slice list associated with the file system; assigning priorities to slice groups specified by the slice list based on priority criteria; distributing backup jobs associated with the slice groups to available proxy hosts based on priority; initiating performance of the backup jobs on the available proxy hosts; making a determination that additional slice groups are remaining; and in response to the determination: adding the remaining slice groups to a slice queue.

## Claims

### Claim 1

A method for backing up a file system, comprising:
identifying, by a first computing device, a backup generation event associated with a file system stored in a network-attached storage;
in response to identifying the backup generation event:
initiating performance of pre-backup tasks to obtain a snapshot of the file system and a slice list associated with the file system, wherein:
the snapshot and the slice list are generated and provided by a second computing device based on a request sent by the first computing device, and
the second computing device is connected to the first computing device via a network;
assigning priorities to slice groups specified by the slice list based on priority criteria;
distributing backup jobs associated with the slice groups to available proxy hosts based on the priorities;
initiating performance of the backup jobs on the available proxy hosts, wherein:
the available proxy hosts generate backups of the slice groups by storing copies of the slice groups in backup storage based on requests obtained from the first computing device, and
the available proxy hosts are connected to the first computing device via the network;
making a determination that additional slice groups are remaining; and
in response to the determination:
adding the remaining slice groups to a slice queue, wherein the remaining slice groups are added and removed from the slice queue based on the priorities.

### Claim 2 (depends on 1)

The method of claim 1, wherein slice groups associated with a higher priority are distributed to the available proxy hosts prior to slice groups associated with a lower priority.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
after adding the remaining slice groups to the slice queue:
making a second determination that a portion of the proxy hosts are available again;
in response to the second determination:
distributing second backup jobs associated with a portion of the remaining slice groups to the portion of the proxy hosts; and
initiating performance of the second backup jobs on the portion of the proxy hosts.

### Claim 4 (depends on 3)

The method of claim 3, wherein the remaining slice groups associated with a higher priority are distributed to the portion of the proxy hosts prior to remaining slice groups associated with a lower priority.

### Claim 5 (depends on 1)

The method of claim 1, wherein a slice group of the slice groups comprises a portion of the file system.

### Claim 6 (depends on 1)

The method of claim 1, wherein the priority criteria specify a plurality of rules for assigning priorities to the slice groups.

### Claim 7 (depends on 1)

The method of claim 1, wherein the backup generation event is associated with a full backup of the file system.

### Claim 8 (depends on 7)

The method of claim 7, wherein the slice groups are grouped based on at least one selected from a group consisting of:
number of files included in each slice; and
average size of files included in each slice.

### Claim 9 (depends on 1)

The method of claim 1, wherein the backup generation event is associated with an incremental backup of the file system.

### Claim 10 (depends on 9)

The method of claim 9, wherein the slice groups are grouped based on at least one selected from a group consisting of:
number of files included in each slice;
average size of files included in each slice;
data type of each slice; and
change rate of each slice.

### Claim 11

A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for backing up a file system, the method comprising:
identifying, by a first computing device, a backup generation event associated with a file system stored in a network-attached storage;
in response to identifying the backup generation event:
initiating performance of pre-backup tasks to obtain a snapshot of the file system and a slice list associated with the file system, wherein:
the snapshot and the slice list are generated and provided by a second computing device based on a request sent by the first computing device, and
the second computing device is connected to the first computing device via a network;
assigning priorities to slice groups specified by the slice list based on priority criteria;
distributing backup jobs associated with the slice groups to available proxy hosts based on the priorities;
initiating performance of the backup jobs on the available proxy hosts, wherein:
the available proxy hosts generate backups of the slice groups by storing copies of the slice groups in backup storage based on requests obtained from the first computing device, and
the available proxy hosts are connected to the first computing device via the network;
making a determination that additional slice groups are remaining; and
in response to the determination:
adding the remaining slice groups to a slice queue, wherein the remaining slice groups are added and removed from the slice queue based on the priorities.

### Claim 12 (depends on 11)

The non-transitory computer readable medium of claim 11, wherein slice groups associated with a higher priority are distributed to the available proxy hosts prior to slice groups associated with a lower priority.

### Claim 13 (depends on 11)

The non-transitory computer readable medium of claim 11, wherein the method further comprising:
after adding the remaining slice groups to the slice queue:
making a second determination that a portion of the proxy hosts are available again;
in response to the second determination:
distributing second backup jobs associated with a portion of the remaining slice groups to the portion of the proxy hosts; and
initiating performance of the second backup jobs on the portion of the proxy hosts.

### Claim 14 (depends on 13)

The non-transitory computer readable medium of claim 13, wherein the remaining slice groups associated with a higher priority are distributed to the portion of the proxy hosts prior to remaining slice groups associated with a lower priority.

### Claim 15 (depends on 11)

The non-transitory computer readable medium of claim 11, wherein a slice group of the slice groups comprises a portion of the file system.

### Claim 16

A system for backing up a file system, comprising:
a plurality of proxy hosts; and
a first computing device, comprising a processor and memory, programmed to:
identify a backup generation event associated with a file system stored in a network-attached storage;
in response to identifying the backup generation event:
initiate performance of pre-backup tasks to obtain a snapshot of the file system and a slice list associated with the file system, wherein:
the snapshot and the slice list are generated and provided by a second computing device based on a request sent by the first computing device, and
the second computing device is connected to the first computing device via a network;
assign priorities to slice groups specified by the slice list based on priority criteria;
distribute backup jobs associated with the slice groups to available proxy hosts of the plurality of proxy hosts based on the priorities;
initiate performance of the backup jobs on the available proxy hosts, wherein:
the available proxy hosts generate backups of the slice groups by storing copies of the slice groups in backup storage based on requests obtained from the first computing device, and
the available proxy hosts are connected to the first computing device via the network;
make a determination that additional slice groups are remaining; and
in response to the determination:
add the remaining slice groups to a slice queue, wherein the remaining slice groups are added and removed from the slice queue based on the priorities.

### Claim 17 (depends on 16)

The system of claim 16, wherein slice groups associated with a higher priority are distributed to the available proxy hosts prior to slice groups associated with a lower priority.

### Claim 18 (depends on 16)

The system of claim 16, wherein the first computing device is further programmed to:
after adding the remaining slice groups to the slice queue:
make a second determination that a portion of the plurality of proxy hosts are available again;
in response to the second determination:
distribute second backup jobs associated with a portion of the remaining slice groups to the portion of the plurality of proxy hosts; and
initiate performance of the second backup jobs on the portion of the plurality of proxy hosts.

### Claim 19 (depends on 18)

The system of claim 18, wherein the remaining slice groups associated with a higher priority are distributed to the portion of the plurality of proxy hosts prior to remaining slice groups associated with a lower priority.

### Claim 20 (depends on 16)

The system of claim 16, wherein a slice group of the slice groups comprises a portion of the file system.
