# US 2021/0243255 A1 · Efficient replication of a dataset to the cloud

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

- Number: US 2021/0243255 A1
- Document ID: US20210243255A1
- Status: Published application
- Kind: A1
- Application number: 17/234,024
- Filed: 2021-04-19
- Published: 2021-08-05
- Earliest claimed: 2015-12-08
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: VINAY PERNETI; DEEPAK CHAWLA; JOHN COLGROVE; TERENCE NOONAN; JIKUI SU
- Web page: https://patentgrep.com/patent/US20210243255A1

## CPC

- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 11/108: {Parity data distribution in semiconductor storages, e.g. in SSD}
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1456: {Hardware arrangements for backup}
- G06F 11/2064: {while ensuring consistency}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Synchronizing snapshots between storage systems, including: receiving, from a source storage system, an identification of a snapshot to be replicated to a destination storage system, wherein the source storage system and the destination storage system are of different types; identifying, from hint information stored on the destination storage system, a most recent version of the snapshot that is stored on the destination storage system; issuing, to the source storage system, a request for an identification of the differences between the snapshot to be replicated to the destination storage system and the most recent version of the snapshot that is stored on the destination storage system; receiving, from the source storage system, the identification of the differences; and issuing a request to transfer, from the source storage system to the destination storage system, data associated with the differences.

## Claims

### Claim 1

A method comprising:
determining the differences between a dataset to be replicated to a target storage system and a version of the dataset that is stored on a source storage system; and
directing the target storage system to store, as part of a new version of the dataset that is stored on the target storage system, the differences between the dataset to be replicated and the version of the dataset that is stored on the target storage system, wherein the new version of the dataset does not comprise at least a portion of the dataset that is stored on the destination storage system.

### Claim 2 (depends on 1)

The method of claim 1 wherein the dataset to be replicated is stored on a source storage system that adheres to a first storage architecture and wherein the target storage system adheres to a second storage architecture.

### Claim 3 (depends on 1)

The method of claim 1 further comprising:
creating a new volume on the target storage system;
storing, in the new volume on the target storage system, the data associated with the differences;
creating, on the target storage system, a dataset of the new volume; and
deleting the new volume.

### Claim 4 (depends on 1)

The method of claim 1 further comprising issuing, to the target storage system, a request to store hint information associated with the data transferred from a source storage system to the target storage system.

### Claim 5 (depends on 1)

The method of claim 1 further comprising issuing, to a source storage system that is storing the dataset to be replicated, a request to delete a stored dataset.

### Claim 6 (depends on 1)

The method of claim 1 further comprising comparing the dataset to be replicated to the target storage system and the most recent version of the dataset that is stored on the target storage system.

### Claim 7 (depends on 1)

The method of claim 1 wherein at least one of the source storage system or the target storage system is embodied as a cloud-based storage system.

### Claim 8

An apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
determining for a dataset to be replicated to a target storage system, a version of the dataset that is stored on the target storage system;
determining the differences between the dataset to be replicated to the target storage system and the version of the dataset that is stored on the target storage system; and
directing the target storage system to store as a new version of the dataset on the target storage system, the differences between the dataset to be replicated and the version of the dataset that is stored on the target storage system, wherein the new version of the dataset does not comprise at least a portion of the data stored in the version of the dataset that is stored on the destination storage system.

### Claim 9 (depends on 8)

The apparatus of claim 8 wherein the dataset to be replicated is stored on a source storage system that adheres to a first storage architecture and wherein the target storage system adheres to a second storage architecture.

### Claim 10 (depends on 8)

The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
creating a new volume on the target storage system;
storing, in the new volume on the target storage system, the data associated with the differences;
creating, on the target storage system, a dataset of the new volume; and
deleting the new volume.

### Claim 11 (depends on 8)

The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of issuing, to the target storage system, a request to store hint information associated with the data transferred from a source storage system to the target storage system.

### Claim 12 (depends on 8)

The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of issuing, to a source storage system that is storing the dataset to be replicated, a request to delete a stored dataset.

### Claim 13 (depends on 8)

The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of comparing the dataset to be replicated to the target storage system and the version of the dataset that is stored on the target storage system.

### Claim 14 (depends on 8)

The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of receiving a configuration file that includes information describing a source storage system, information describing the target storage system, and information describing a schedule for synchronizing datasets between the source storage system and the target storage system.

### Claim 15

A computer program product disposed upon a computer readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:
determining for a dataset to be replicated to a target storage system, a version of the dataset that is stored on the target storage system;
determining the differences between the dataset to be replicated to the target storage system and the version of the dataset that is stored on the target storage system; and
directing the target storage system to store as a new version of the dataset on the target storage system, the differences between the dataset to be replicated and the version of the dataset that is stored on the target storage system, wherein the new version of the dataset does not comprise at least a portion of the data stored in the version of the dataset that is stored on the destination storage system.

### Claim 16 (depends on 15)

The computer program product of claim 15 wherein the dataset to be replicated is stored on a source storage system that adheres to a first storage architecture and wherein the target storage system adheres to a second storage architecture.

### Claim 17 (depends on 15)

The computer program product of claim 15 further comprising computer program instructions that, when executed, cause the computer to carry out the steps of:
creating a new volume on the target storage system;
storing, in the new volume on the target storage system, the data associated with the differences;
creating, on the target storage system, a dataset of the new volume; and
deleting the new volume.

### Claim 18 (depends on 15)

The computer program product of claim 15 further comprising computer program instructions that, when executed, cause the computer to carry out the step of issuing, to the target storage system, a request to store hint information associated with the data transferred from a source storage system to the target storage system.

### Claim 19 (depends on 15)

The computer program product of claim 15 further comprising computer program instructions that, when executed, cause the computer to carry out the step of issuing, to a source storage system that is storing the dataset to be replicated, a request to delete a stored dataset.

### Claim 20 (depends on 15)

The computer program product of claim 15 further comprising computer program instructions that, when executed, cause the computer to carry out the step of receiving a configuration file that includes information describing a source storage system, information describing the target storage system, and information describing a schedule for synchronizing datasets between the source storage system and the target storage system.
