# US 12,222,817 B2 · Method, electronic device, and computer program product for backing up data

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

- Number: US 12,222,817 B2
- Document ID: US12222817B2
- Status: Granted
- Kind: B2
- Application number: 18/477,260
- Filed: 2023-09-28
- Published: 2025-01-09
- Granted: 2025-02-11
- Earliest claimed: 2023-07-07
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Weibing Zhang; Victor Lei Gao; Henry Hao Fang
- Web page: https://patentgrep.com/patent/US12222817B2

## CPC

- G06F 11/1453: {using de-duplication of the data}
- 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

Backing up data is described. An example method includes acquiring data block deduplication information of source data and pieces of backup node deduplication information of backup nodes in a backup node set. Then, based on the data block deduplication information and the pieces, deduplication rates of the source data are determined relative to the backup nodes in the backup node set. In addition, based on the deduplication rates for the plurality of backup nodes, a target backup node is selected for backing up the source data from the backup node set. Data features of the to-be-backed-up source data are utilized to determine the deduplication rate of the source data relative to each backup node, thereby selecting the target backup node through the deduplication rates of the backup nodes. The space occupation of backup nodes can also be reduced when backing up the source data, thereby achieving better space utilization.

## Claims

### Claim 1

A method for backing up data, comprising:
acquiring, by a system comprising a processor, data block deduplication information of source data and pieces of backup node deduplication information of backup nodes in a backup node set, wherein backup node deduplication information in the pieces of backup node deduplication information comprises data block deduplication information of backed up data in a corresponding backup node;
determining, based on the data block deduplication information of the source data and the pieces of backup node deduplication information, deduplication rates of the source data relative to the backup nodes in the backup node set, wherein a deduplication rate in the deduplication rates indicates a deduplication ratio of the source data when backing up the source data to the corresponding backup node; and
selecting, based on the deduplication rates for the backup nodes, a target backup node for backing up the source data from the backup node set.

### Claim 2 (depends on 1)

The method according to claim 1, wherein acquiring the data block deduplication information of the source data comprises:
acquiring, by dividing the source data into data blocks, hash values of the data blocks; and
determining, based on the hash values, the data block deduplication information of the source data.

### Claim 3 (depends on 2)

The method according to claim 2, wherein determining, based on the hash values, the data block deduplication information of the source data comprises:
determining whether a hash value in the hash values exists in a predetermined hash cache;
increasing, in response to the determining indicating that the hash value exists in the predetermined hash cache, a count value of data blocks corresponding to the hash value; and
determining the data block deduplication information of the source data based on count values of the data blocks.

### Claim 4 (depends on 3)

The method according to claim 3, wherein determining the deduplication rates of the source data relative to the backup nodes in the backup node set comprises:
determining, based on the data block deduplication information and the pieces of backup node deduplication information, hit data block sets and missed data block sets, wherein a hit data block set in the hit data block sets comprises data blocks that are present in the data block deduplication information of the source data and exist in the backup node, and a missed data block set in the missed data block sets comprises data blocks that are present in the source data and do not exist in the backup node; and
determining the deduplication rates based on the hit data block sets and the missed data block sets.

### Claim 5 (depends on 4)

The method according to claim 4, wherein determining the deduplication rates based on the hit data block sets and the missed data block sets comprises:
determining first deduplication values in response to a determination that the data blocks in the source data exist in the hit data block sets;
determining second deduplication values in response to a determination that the data blocks in the source data exist in the missed data block sets; and
determining the deduplication rates based on the first deduplication values, the second deduplication values, a first size of the data blocks in the source data, and a second size of the source data.

### Claim 6 (depends on 1)

The method according to claim 1, further comprising:
removing, in response to removing the backed up data from a backup node in the backup nodes, the data block deduplication information of the backed up data, from the corresponding backup node, deduplication information in the pieces of backup node deduplication information.

### Claim 7 (depends on 6)

The method according to claim 6, further comprising:
adding, in response to adding new backup data to a backup node in the backup nodes, data block deduplication information of the new backup data, to the corresponding backup node, deduplication information in the pieces of backup node deduplication information.

### Claim 8 (depends on 1)

The method according to claim 1, further comprising:
determining, before acquiring the data block deduplication information of the source data and the pieces of backup node deduplication information of the backup nodes in the backup node set, a change rate of the data block deduplication information of the source data in response to a determination that the source data has been previously backed up to a specific backup node in the backup node set; and
acquiring, in response to a determination that the change rate is greater than a first predetermined threshold, the data block deduplication information of the source data and the pieces of backup node deduplication information of the backup nodes in the backup node set.

### Claim 9 (depends on 8)

The method according to claim 8, further comprising:
determining, before acquiring the data block deduplication information of the source data and the pieces of backup node deduplication information of the backup nodes in the backup node set, whether the backup nodes in the backup node set have backed up data; and
acquiring, in response to the determining indicating that the backup nodes in the backup node set have backed up data, the data block deduplication information of the source data and the pieces of backup node deduplication information of the backup nodes in the backup node set.

### Claim 10 (depends on 9)

The method according to claim 9, further comprising:
determining, in response to a determination that the backup node set comprises a blank backup node, the target backup node for backing up the source data based on the deduplication rates.

### Claim 11 (depends on 10)

The method according to claim 10, wherein determining the target backup node based on the deduplication rates comprises:
determining, in response to a determination that each deduplication rate of the deduplication rates is less than a second predetermined threshold, the blank backup node as the target backup node for backing up the source data.

### Claim 12

A device, including:
a processor; and
a memory coupled with the processor, wherein the memory has instructions stored therein, and the instructions, when executed by the processor, cause the device to perform actions comprising:
acquiring data block deduplication information of source data and a group of pieces of backup node deduplication information of a group of backup nodes in a backup node set, wherein backup node deduplication information in the group of pieces of backup node deduplication information comprises data block deduplication information of backed up data in a corresponding backup node;
determining, based on the data block deduplication information of the source data and the group of pieces of backup node deduplication information, a group of deduplication rates of the source data relative to the group of backup nodes in the backup node set, wherein a deduplication rate in the group of deduplication rates indicates a deduplication ratio of the source data when backing up the source data to the corresponding backup node; and
selecting, based on the group of deduplication rates for the group of backup nodes, a target backup node for backing up the source data from the backup node set.

### Claim 13 (depends on 12)

The device according to claim 12, wherein acquiring the data block deduplication information of the source data comprises:
acquiring, by dividing the source data into a group of data blocks, a group of hash values of the group of data blocks; and
determining, based on the group of hash values, the data block deduplication information of the source data.

### Claim 14 (depends on 13)

The device according to claim 13, wherein determining, based on the group of hash values, the data block deduplication information of the source data comprises:
determining whether a hash value in the group of hash values exists in a predetermined hash cache;
increasing, in response to the determining indicating that the hash value exists in the predetermined hash cache, a count value of data blocks corresponding to the hash value; and
determining the data block deduplication information of the source data based on a group of count values of the group of data blocks.

### Claim 15 (depends on 14)

The device according to claim 14, wherein determining the group of deduplication rates of the source data relative to the group of backup nodes in the backup node set comprises:
determining, based on the data block deduplication information and the group of pieces of backup node deduplication information, a group of hit data block sets and a group of missed data block sets, wherein a hit data block set in the group of hit data block sets comprises data blocks that are present in the data block deduplication information of the source data and exist in the backup node, and a missed data block set in the group of missed data block sets comprises data blocks that are present in the source data and do not exist in the backup node; and
determining the group of deduplication rates based on the group of hit data block sets and the group of missed data block sets.

### Claim 16 (depends on 15)

The device according to claim 15, wherein determining the group of deduplication rates based on the group of hit data block sets and the group of missed data block sets comprises:
determining a group of first deduplication values in response to a determination that the data blocks in the source data exist in the group of hit data block sets;
determining a group of second deduplication values in response to a determination that the data blocks in the source data exist in the group of missed data block sets; and
determining the group of deduplication rates based on the group of first deduplication values, the group of second deduplication values, a first size of the data blocks in the source data, and a second size of the source data.

### Claim 17 (depends on 12)

The device according to claim 12, wherein the actions further comprise:
removing, in response to removing the backed up data from a backup node in the group of backup nodes, the data block deduplication information of the backed up data, from the corresponding backup node, deduplication information in the group of pieces of backup node deduplication information.

### Claim 18 (depends on 17)

The device according to claim 17, wherein the actions further comprise:
adding, in response to adding new backup data to a backup node in the group of backup nodes, data block deduplication information of the new backup data, to the corresponding backup node, deduplication information in the group of pieces of backup node deduplication information.

### Claim 19

A computer program product, wherein the computer program product is stored on a non-transitory computer-readable storage medium and comprises machine executable instructions, and the machine executable instructions, when executed, cause a machine to perform operations, comprising:
acquiring data block deduplication information of source data and a plurality of pieces of backup node deduplication information of a plurality of backup nodes in a backup node set, wherein backup node deduplication information in the plurality of pieces of backup node deduplication information comprises data block deduplication information of backed up data in a corresponding backup node;
determining, based on the data block deduplication information of the source data and the plurality of pieces of backup node deduplication information, a plurality of deduplication rates of the source data relative to the plurality of backup nodes in the backup node set, wherein a deduplication rate in the plurality of deduplication rates indicates a deduplication ratio of the source data when backing up the source data to the corresponding backup node; and
selecting, based on the plurality of deduplication rates for the plurality of backup nodes, a target backup node for backing up the source data from the backup node set.

### Claim 20 (depends on 19)

The computer program product according to claim 19, wherein the operations further comprise:
determining, before acquiring the data block deduplication information of the source data and the group of pieces of backup node deduplication information of the plurality of backup nodes in the backup node set, a change rate of the data block deduplication information of the source data in response to a determination that the source data has been previously backed up to a specific backup node in the backup node set; and
acquiring, in response to a determination that the change rate is greater than a first predetermined threshold, the data block deduplication information of the source data and the plurality of pieces of backup node deduplication information of the plurality of backup nodes in the backup node set.
