# US 11,442,895 B2 · Method for copying data, electronic device and computer program product

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

- Number: US 11,442,895 B2
- Document ID: US11442895B2
- Status: Granted
- Kind: B2
- Application number: 17/029,709
- Filed: 2020-09-23
- Published: 2022-01-27
- Granted: 2022-09-13
- Earliest claimed: 2020-07-27
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Bo Hu; Qian Wu; Jing Ye
- Web page: https://patentgrep.com/patent/US11442895B2

## 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/1451: {by selection of backup contents}
- G06F 11/1464: {for networked environments}
- G06F 16/1756: {based on delta files}
- G06F 2201/81: Threshold
- 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 for replicating data involve: acquiring a first snapshot of a data block set, the first snapshot being a snapshot before a first subset of the data block set starts to be replicated; acquiring a second snapshot of the data block set, the second snapshot being a snapshot of the data block set when replication of the first subset is completed; and determining, based on a difference between the second snapshot and the first snapshot, a second subset of the data block set, the second subset being different from the first subset. Accordingly, such techniques can improve data protection efficiency in asynchronous replication.

## Claims

### Claim 1

A method for replicating data, comprising:
acquiring a first snapshot of a data block set, the first snapshot being a snapshot before a first subset of the data block set starts to be replicated;
acquiring a second snapshot of the data block set, the second snapshot being a snapshot of the data block set when replication of the first subset is completed;
determining, based at least in part on a difference between the second snapshot and the first snapshot, a second subset of the data block set, the second subset being different from the first subset, wherein the difference between the second snapshot and the first snapshot indicates data blocks in the first subset of the data block set that have changed during the replication of the first subset of the data block set, and wherein the second subset includes both the data blocks in the first subset of the data block set that have changed during the replication of the first subset of the data block set and data blocks in the data block set that have not yet been replicated; and
completing replication of the data block set by replicating the data blocks in the second subset of the data block set.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising:
acquiring operating frequencies of data blocks in the data block set; and
determining data blocks having an operating frequency lower than a threshold frequency as data blocks in the first subset.

### Claim 3 (depends on 2)

The method according to claim 2, wherein the operating frequency comprises a data write-in frequency.

### Claim 4 (depends on 1)

The method according to claim 1, wherein determining the second subset comprises:
determining a third subset of the data block set, the third subset comprising the data blocks in the first subset of the data block set that have changed during the replication of the first subset of the data block set;
determining a fourth subset of the data block set, the fourth subset comprising the data blocks in the data block set that have not yet been replicated; and
obtaining the second subset by merging the third subset and the fourth subset.

### Claim 5 (depends on 4)

The method according to claim 4, wherein determining the third subset comprises:
determining data blocks associated with the difference between the second snapshot and the first snapshot as data blocks in the third subset.

### Claim 6 (depends on 4)

The method according to claim 4, wherein determining the fourth subset comprises:
determining data blocks in the data block set other than the first subset as data blocks in the fourth subset.

### Claim 7

An electronic device, comprising:
a processor; and
a memory storing computer program instructions, wherein the processor runs the computer program instructions in the memory to control the electronic device to perform actions comprising:
acquiring a first snapshot of a data block set, the first snapshot being a snapshot before a first subset of the data block set starts to be replicated;
acquiring a second snapshot of the data block set, the second snapshot being a snapshot of the data block set when replication of the first subset is completed;
determining, based at least in part on a difference between the second snapshot and the first snapshot, a second subset of the data block set, the second subset being different from the first subset, wherein the difference between the second snapshot and the first snapshot indicates data blocks in the first subset of the data block set that have changed during the replication of the first subset of the data block set, and wherein the second subset includes both the data blocks in the first subset of the data block set that have changed during the replication of the first subset of the data block set and data blocks in the data block set that have not yet been replicated; and
completing replication of the data block set by replicating the data blocks in the second subset of the data block set.

### Claim 8 (depends on 7)

The electronic device according to claim 7, wherein the actions further comprise:
acquiring operating frequencies of data blocks in the data block set; and
determining data blocks having an operating frequency lower than a threshold frequency as data blocks in the first subset.

### Claim 9 (depends on 8)

The electronic device according to claim 8, wherein the operating frequency comprises a data write-in frequency.

### Claim 10 (depends on 7)

The electronic device according to claim 7, wherein determining the second subset comprises:
determining a third subset of the data block set, the third subset comprising the data blocks in the first subset of the data block set that have changed during the replication of the first subset of the data block set;
determining a fourth subset of the data block set, the fourth subset comprising the data blocks in the data block set that have not yet been replicated; and
obtaining the second subset by merging the third subset and the fourth subset.

### Claim 11 (depends on 10)

The electronic device according to claim 10, wherein determining the third subset comprises:
determining data blocks associated with the difference between the second snapshot and the first snapshot as data blocks in the third subset.

### Claim 12 (depends on 10)

The electronic device according to claim 10, wherein determining the fourth subset comprises:
determining data blocks in the data block set other than the first subset as data blocks in the fourth subset.

### Claim 13

A computer program product tangibly stored in a non-transitory computer storage medium and comprising machine-executable instructions, wherein the machine-executable instructions, when executed by a device, cause the device to perform actions comprising:
acquiring a first snapshot of a data block set, the first snapshot being a snapshot before a first subset of the data block set starts to be replicated;
acquiring a second snapshot of the data block set, the second snapshot being a snapshot of the data block set when replication of the first subset is completed;
determining, based at least in part on a difference between the second snapshot and the first snapshot, a second subset of the data block set, the second subset being different from the first subset, wherein the difference between the second snapshot and the first snapshot indicates data blocks in the first subset of the data block set that have changed during the replication of the first subset of the data block set, and wherein the second subset includes both the data blocks in the first subset of the data block set that have changed during the replication of the first subset of the data block set and data blocks in the data block set that have not yet been replicated; and
completing replication of the data block set by replicating the data blocks in the second subset of the data block set.

### Claim 14 (depends on 13)

The computer program product according to claim 13, wherein the actions further comprise:
acquiring operating frequencies of data blocks in the data block set; and
determining data blocks having an operating frequency lower than a threshold frequency as data blocks in the first subset.

### Claim 15 (depends on 14)

The computer program product according to claim 14, wherein the operating frequency comprises a data write-in frequency.

### Claim 16 (depends on 13)

The computer program product according to claim 13, wherein determining the second subset comprises:
determining a third subset of the data block set, the third subset comprising the data blocks in the first subset of the data block set that have changed during the replication of the first subset of the data block set;
determining a fourth subset of the data block set, the fourth subset comprising the data blocks in the data block set that have not been replicated; and
obtaining the second subset by merging the third subset and the fourth subset.

### Claim 17 (depends on 16)

The computer program product according to claim 16, wherein determining the third subset comprises:
determining data blocks associated with the difference between the second snapshot and the first snapshot as data blocks in the third subset.

### Claim 18 (depends on 16)

The computer program product according to claim 16, wherein determining the fourth subset comprises:
determining data blocks in the data block set other than the first subset as data blocks in the fourth subset.
