# US 2020/0401604 A1 · Verifying mirroring of source data units to target data units

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

- Number: US 2020/0401604 A1
- Document ID: US20200401604A1
- Status: Published application
- Kind: A1
- Application number: 16/446,611
- Filed: 2019-06-19
- Published: 2020-12-24
- Earliest claimed: 2019-06-19
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: David Michael Shackelford; Nadim P. Shehab; John G. Thompson; Eduard Aaron Diel; Anthony H. Giang
- Web page: https://patentgrep.com/patent/US20200401604A1

## CPC

- G06F 16/273: {Asynchronous replication or reconciliation}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Provided are a computer program product, system, and method verifying mirroring of source data units to target data units. Source data units in a source storage are mirrored to corresponding target data units in a target storage. The source data units are read to compare to corresponding mirrored target data units. The read source data units that did not match the corresponding target data units are saved in source version data. The source data units that were read and did not match the corresponding target data units are read. The mirroring of the source data units are verified in response to determining that for each mirrored source data unit, one of a read source data unit and the read source data unit saved in the source version data matches the corresponding target data unit.

## Claims

### Claim 1

A computer program product for verifying mirroring of source data units to target data units, wherein the computer program product comprises a computer readable storage medium having program instructions executable by a processor to cause operations, the operations comprising:
mirroring source data units in a source storage to corresponding target data units in a target storage;
reading the source data units to compare to corresponding mirrored target data units;
saving, in source version data, read source data units that did not match the corresponding target data units;
rereading source data units that were read and did not match the corresponding target data units; and
verifying the mirroring of the source data units in response to determining that for each mirrored source data unit, one of a read source data unit and the read source data unit saved in the source version data matches the corresponding target data unit.

### Claim 2 (depends on 1)

The computer program product of claim 1, wherein additional iterations of the rereading of the source data units and saving the reread source data units in the source version data are performed while there are reread source data units that did not match corresponding target data units, wherein the operations further comprise:
indicating the mirroring as unverified in response to determining that all of the source data units did not match the corresponding target data units after a predetermined number of iterations of the rereading and the saving the reread source data units.

### Claim 3 (depends on 2)

The computer program product of claim 2, wherein the source data units are updated and mirrored to the corresponding target data units during the additional iterations of the rereading and the saving the reread source data units.

### Claim 4 (depends on 1)

The computer program product of claim 1, wherein the operations further comprise:
maintaining a verification map indicating each of the source data units whose mirroring was verified; and
indicating in the verification map that the mirroring for a read source data unit of the source data units was verified in response to determining that the read source data unit or source data unit saved in the source version data matches a corresponding target data unit, wherein the mirroring of the source data units is verified in response to the verification map indicating that all of the source data units match the read source data unit or a version of the source data unit saved in the source version data.

### Claim 5 (depends on 1)

The computer program product of claim 1, wherein source data units are mirrored to the corresponding target data units in consistency groups that are consistent as of point-in-times, wherein verifying the mirroring of a source data unit comprises comparing a corresponding target data unit with one of the read source data unit and the source data units saved in the source version data at a same point-in-time as the corresponding target data unit.

### Claim 6 (depends on 1)

The computer program product of claim 1, wherein the operations further comprise:
saving, in target version data, target data units that did not match corresponding read source data units, wherein the verifying the mirroring of the source data units comprises verifying the mirroring of the source data units in response to determining that for each mirrored source data unit, one of a read source data unit and a reread source data unit saved in the source version data matches one instance of a corresponding target data unit in the target storage and the target version data.

### Claim 7 (depends on 1)

The computer program product of claim 1, wherein source data units are mirrored to the corresponding target data units in consistency groups that are consistent as of point-in-times, wherein verifying the mirroring of a source data unit comprises comparing a corresponding target data unit of a specified point-in-time to one of the read source data unit and the read source data unit saved in the source version data having the specified point-in-time.

### Claim 8

A system for verifying mirroring of source data units to target data units, comprising:
a processor; and
a computer readable storage medium having program instructions executable by the processor to cause operations, the operations comprising:
mirroring source data units in a source storage to corresponding target data units in a target storage;
reading the source data units to compare to corresponding mirrored target data units;
saving, in source version data, read source data units that did not match the corresponding target data units;
rereading source data units that were read and did not match the corresponding target data units; and
verifying the mirroring of the source data units in response to determining that for each mirrored source data unit, one of a read source data unit and the read source data unit saved in the source version data matches the corresponding target data unit.

### Claim 9 (depends on 8)

The system of claim 8, wherein additional iterations of the rereading of the source data units and saving the reread source data units in the source version data are performed while there are reread source data units that did not match corresponding target data units, wherein the operations further comprise:
indicating the mirroring as unverified in response to determining that all of the source data units did not match the corresponding target data units after a predetermined number of iterations of the rereading and the saving the reread source data units.

### Claim 10 (depends on 9)

The system of claim 9, wherein the source data units are updated and mirrored to the corresponding target data units during the additional iterations of the rereading and the saving the reread source data units.

### Claim 11 (depends on 8)

The system of claim 8, wherein the operations further comprise:
maintaining a verification map indicating each of the source data units whose mirroring was verified; and
indicating in the verification map that the mirroring for a read source data unit of the source data units was verified in response to determining that the read source data unit or source data unit saved in the source version data matches a corresponding target data unit, wherein the mirroring of the source data units is verified in response to the verification map indicating that all of the source data units match the read source data unit or a version of the source data unit saved in the source version data.

### Claim 12 (depends on 8)

The system of claim 8, wherein source data units are mirrored to the corresponding target data units in consistency groups that are consistent as of point-in-times, wherein verifying the mirroring of a source data unit comprises comparing a corresponding target data unit with one of the read source data unit and the source data units saved in the source version data at a same point-in-time as the corresponding target data unit.

### Claim 13 (depends on 8)

The system of claim 8, wherein the operations further comprise:
saving, in target version data, target data units that did not match corresponding read source data units, wherein the verifying the mirroring of the source data units comprises verifying the mirroring of the source data units in response to determining that for each mirrored source data unit, one of a read source data unit and a reread source data unit saved in the source version data matches one instance of a corresponding target data unit in the target storage and the target version data.

### Claim 14 (depends on 8)

The system of claim 8, wherein source data units are mirrored to the corresponding target data units in consistency groups that are consistent as of point-in-times, wherein verifying the mirroring of a source data unit comprises comparing a corresponding target data unit of a specified point-in-time to one of the read source data unit and the read source data unit saved in the source version data having the specified point-in-time.

### Claim 15

A method for verifying mirroring of source data units to target data units, comprising:
mirroring source data units in a source storage to corresponding target data units in a target storage;
reading the source data units to compare to corresponding mirrored target data units;
saving, in source version data, read source data units that did not match the corresponding target data units;
rereading source data units that were read and did not match the corresponding target data units; and
verifying the mirroring of the source data units in response to determining that for each mirrored source data unit, one of a read source data unit and the read source data unit saved in the source version data matches the corresponding target data unit.

### Claim 16 (depends on 15)

The method of claim 15, wherein additional iterations of the rereading of the source data units and saving the reread source data units in the source version data are performed while there are reread source data units that did not match corresponding target data units, further comprising:
indicating the mirroring as unverified in response to determining that all of the source data units did not match the corresponding target data units after a predetermined number of iterations of the rereading and the saving the reread source data units.

### Claim 17 (depends on 16)

The method of claim 16, wherein the source data units are updated and mirrored to the corresponding target data units during the additional iterations of the rereading and the saving the reread source data units.

### Claim 18 (depends on 15)

The method of claim 15, further comprising:
maintaining a verification map indicating each of the source data units whose mirroring was verified; and
indicating in the verification map that the mirroring for a read source data unit of the source data units was verified in response to determining that the read source data unit or source data unit saved in the source version data matches a corresponding target data unit, wherein the mirroring of the source data units is verified in response to the verification map indicating that all of the source data units match the read source data unit or a version of the source data unit saved in the source version data.

### Claim 19 (depends on 15)

The method of claim 15, wherein source data units are mirrored to the corresponding target data units in consistency groups that are consistent as of point-in-times, wherein verifying the mirroring of a source data unit comprises comparing a corresponding target data unit with one of the read source data unit and the source data units saved in the source version data at a same point-in-time as the corresponding target data unit.

### Claim 20 (depends on 15)

The method of claim 15, further comprising:
saving, in target version data, target data units that did not match corresponding read source data units, wherein the verifying the mirroring of the source data units comprises verifying the mirroring of the source data units in response to determining that for each mirrored source data unit, one of a read source data unit and a reread source data unit saved in the source version data matches one instance of a corresponding target data unit in the target storage and the target version data.
