# US 12,007,851 B2 · Differential checksum validation

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

- Number: US 12,007,851 B2
- Document ID: US12007851B2
- Status: Granted
- Kind: B2
- Application number: 17/715,484
- Filed: 2022-04-07
- Published: 2023-06-29
- Granted: 2024-06-11
- Earliest claimed: 2021-12-27
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Sunil Yadav; Shelesh Chopra
- Web page: https://patentgrep.com/patent/US12007851B2

## CPC

- G06F 11/1448: {Management of the data involved in backup or backup restore}
- G06F 11/1464: {for networked environments}
- G06F 11/1458: {Management of the backup or restore process}
- G06F 16/2365: {Ensuring data consistency and integrity}
- 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

A configuration file specifies a percentage value of data to validate. A synthetic full backup image of a source volume on cloud storage is accessed. The synthetic full backup is created by merging changed blocks of an incremental backup with another previous backup. A bitmap specifying locations of the changed blocks is examined. A region on the synthetic full backup beginning at a location corresponding to an initial changed block and ending at a location corresponding to a last changed block according to the bitmap is identified. The region is partitioned into a set of portions. Each portion is validated by randomly selecting blocks in a respective portion to validate. The validating of the respective portion continues until an amount of data validated in the respective portion reaches a size equal to the percentage value of a size of the incremental backup divided by a number of portions.

## Claims

### Claim 1

A method comprising:
reviewing a configuration file comprising an option specifying a percentage value of data to validate;
accessing, on a cloud storage, a synthetic full backup image of a source volume, the synthetic full backup image having been created by merging changed blocks of an incremental backup of the source volume with another previous backup of the source volume;
examining a bitmap specifying locations of the changed blocks;
identifying a region on the synthetic full backup image that begins at a location corresponding to an initial changed block according to the bitmap and ends at a location corresponding to a last changed block according to the bitmap;
partitioning the region into a plurality of portions; and
validating each portion of the region by randomly selecting blocks in a respective portion to validate and continuing the validating the respective portion until an amount of data validated in the respective portion reaches a size equal to the percentage value of a size of the incremental backup divided by a number of the plurality of portions.

### Claim 2 (depends on 1)

The method of claim 1 wherein the number of the plurality of portions is three, the portions thereby comprising a starting portion, a middle portion, and an ending portion; and
the continuing the validating comprises continuing to validate the respective portion until the amount of data validated in the respective portion reaches a third of the percentage value of the size of the incremental backup.

### Claim 3 (depends on 1)

The method of claim 1 further comprising:
recording a plurality of results corresponding to the validation of each portion of the region.

### Claim 4 (depends on 3)

The method of claim 3 further comprising:
marking the synthetic full backup image on the cloud storage as having passed validation when each portion of the region has passed validation.

### Claim 5 (depends on 3)

The method of claim 3 further comprising:
marking the synthetic full backup image on the cloud storage as having failed validation when any portion of the region has failed validation.

### Claim 6 (depends on 1)

The method of claim 1 wherein a user has specified dynamically adjusting the percentage value of data to validate, the percentage value of data to validate is an initial percent value, and the method further comprises:
moving a first incremental backup, taken at a first time, from on premise secondary storage to the cloud storage;
merging the first incremental backup with a full backup, residing at the cloud storage, to generate a first synthetic full backup;
validating a portion of the first synthetic full backup corresponding to a size of the first incremental backup multiplied by the initial percent value of data to validate;
recording a result for the validation of the synthetic full backup;
if the result is that the validation passed, decreasing the initial percent value of data to validate to a new percent value that is less than the initial percent value;
if the result is that the validation failed, increasing the initial percent value of data to validate to a new percent value that is greater than the initial percent value;
moving a second incremental backup, taken at a second time after the first time, from the on premise secondary storage to the cloud storage;
merging the second incremental backup with the first synthetic full backup, residing at the cloud storage, to generate a new synthetic full backup; and
validating a new portion of the new synthetic full backup corresponding to a size of the second incremental backup multiplied by the new percent value of data to validate.

### Claim 7

A system comprising: a processor; and memory configured to store one or more sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of:
reviewing a configuration file comprising an option specifying a percentage value of data to validate;
accessing, on a cloud storage, a synthetic full backup image of a source volume, the synthetic full backup image having been created by merging changed blocks of an incremental backup of the source volume with another previous backup of the source volume;
examining a bitmap specifying locations of the changed blocks;
identifying a region on the synthetic full backup image that begins at a location corresponding to an initial changed block according to the bitmap and ends at a location corresponding to a last changed block according to the bitmap;
partitioning the region into a plurality of portions; and
validating each portion of the region by randomly selecting blocks in a respective portion to validate and continuing the validating the respective portion until an amount of data validated in the respective portion reaches a size equal to the percentage value of a size of the incremental backup divided by a number of the plurality of portions.

### Claim 8 (depends on 7)

The system of claim 7 wherein the number of the plurality of portions is three, the portions thereby comprising a starting portion, a middle portion, and an ending portion; and
the continuing the validating comprises continuing to validate the respective portion until the amount of data validated in the respective portion reaches a third of the percentage value of the size of the incremental backup.

### Claim 9 (depends on 7)

The system of claim 7 wherein the processor further carries out the steps of:
recording a plurality of results corresponding to the validation of each portion of the region.

### Claim 10 (depends on 9)

The system of claim 9 wherein the processor further carries out the steps of:
marking the synthetic full backup image on the cloud storage as having passed validation when each portion of the region has passed validation.

### Claim 11 (depends on 9)

The system of claim 9 wherein the processor further carries out the steps of:
marking the synthetic full backup image on the cloud storage as having failed validation when any portion of the region has failed validation.

### Claim 12 (depends on 7)

The system of claim 7 wherein a user has specified dynamically adjusting the percentage value of data to validate, the percentage value of data to validate is an initial percent value, and the processor further carries out the steps of:
moving a first incremental backup, taken at a first time, from on premise secondary storage to the cloud storage;
merging the first incremental backup with a full backup, residing at the cloud storage, to generate a first synthetic full backup;
validating a portion of the first synthetic full backup corresponding to a size of the first incremental backup multiplied by the initial percent value of data to validate;
recording a result for the validation of the synthetic full backup;
if the result is that the validation passed, decreasing the initial percent value of data to validate to a new percent value that is less than the initial percent value;
if the result is that the validation failed, increasing the initial percent value of data to validate to a new percent value that is greater than the initial percent value;
moving a second incremental backup, taken at a second time after the first time, from the on premise secondary storage to the cloud storage;
merging the second incremental backup with the first synthetic full backup, residing at the cloud storage, to generate a new synthetic full backup; and
validating a new portion of the new synthetic full backup corresponding to a size of the second incremental backup multiplied by the new percent value of data to validate.

### Claim 13

A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method comprising:
reviewing a configuration file comprising an option specifying a percentage value of data to validate;
accessing, on a cloud storage, a synthetic full backup image of a source volume, the synthetic full backup image having been created by merging changed blocks of an incremental backup of the source volume with another previous backup of the source volume;
examining a bitmap specifying locations of the changed blocks;
identifying a region on the synthetic full backup image that begins at a location corresponding to an initial changed block according to the bitmap and ends at a location corresponding to a last changed block according to the bitmap;
partitioning the region into a plurality of portions; and
validating each portion of the region by randomly selecting blocks in a respective portion to validate and continuing the validating the respective portion until an amount of data validated in the respective portion reaches a size equal to the percentage value of a size of the incremental backup divided by a number of the plurality of portions.

### Claim 14 (depends on 13)

The computer program product of claim 13 wherein the number of the plurality of portions is three, the portions thereby comprising a starting portion, a middle portion, and an ending portion; and
the continuing the validating comprises continuing to validate the respective portion until the amount of data validated in the respective portion reaches a third of the percentage value of the size of the incremental backup.

### Claim 15 (depends on 13)

The computer program product of claim 13 wherein the method further comprises:
recording a plurality of results corresponding to the validation of each portion of the region.

### Claim 16 (depends on 15)

The computer program product of claim 15 wherein the method further comprises:
marking the synthetic full backup image on the cloud storage as having passed validation when each portion of the region has passed validation.

### Claim 17 (depends on 15)

The computer program product of claim 15 wherein the method further comprises:
marking the synthetic full backup image on the cloud storage as having failed validation when any portion of the region has failed validation.

### Claim 18 (depends on 13)

The computer program product of claim 13 wherein a user has specified dynamically adjusting the percentage value of data to validate, the percentage value of data to validate is an initial percent value, and the method further comprises:
moving a first incremental backup, taken at a first time, from on premise secondary storage to the cloud storage;
merging the first incremental backup with a full backup, residing at the cloud storage, to generate a first synthetic full backup;
validating a portion of the first synthetic full backup corresponding to a size of the first incremental backup multiplied by the initial percent value of data to validate;
recording a result for the validation of the synthetic full backup;
if the result is that the validation passed, decreasing the initial percent value of data to validate to a new percent value that is less than the initial percent value;
if the result is that the validation failed, increasing the initial percent value of data to validate to a new percent value that is greater than the initial percent value;
moving a second incremental backup, taken at a second time after the first time, from the on premise secondary storage to the cloud storage;
merging the second incremental backup with the first synthetic full backup, residing at the cloud storage, to generate a new synthetic full backup; and
validating a new portion of the new synthetic full backup corresponding to a size of the second incremental backup multiplied by the new percent value of data to validate.
