# US 10,503,609 B1 · Replication link smoothing using historical data

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

- Number: US 10,503,609 B1
- Document ID: US10503609B1
- Status: Granted
- Kind: B1
- Application number: 15/499,199
- Filed: 2017-04-27
- Granted: 2019-12-10
- Earliest claimed: 2017-04-27
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: William Stronge; David Meiri
- Web page: https://patentgrep.com/patent/US10503609B1

## CPC

- G06F 11/1464: {for networked environments}
- 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/2066: {Optimisation of the communication load}
- G06F 11/2074: {Asynchronous techniques}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- 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 computer program product, system, and method for determining a number of chunks written to a storage volume during a first replication cycle; determining a host write rate based on the number of chunks written to the storage volume during the first replication cycle; estimating a number of chunks written during a second replication cycle; determining a target rate based on the estimated number of chunks written during the second replication cycle; and transmitting chunks written during the second replication cycle at the target rate.

## Claims

### Claim 1

A method comprising:
determining a number of chunks written to a storage volume during a first replication cycle;
determining a host write rate based on the number of chunks written to the storage volume during the first replication cycle;
estimating a number of chunks written during a second replication cycle;
determining a target rate based on the estimated number of chunks written during the second replication cycle, the target rate determined by dividing the number of chunks written during the second replication cycle by a recovery point objective (RPO) period; and
transmitting chunks written during the second replication cycle at the target rate.

### Claim 2 (depends on 1)

The method of claim 1 wherein the storage volume is storage volume with a content-based storage system.

### Claim 3 (depends on 1)

The method of claim 1 wherein determining a number of chunks written to a storage volume during a first replication cycle includes comparing two address-to-hash (A2H) tables associated with consecutive snapshots of the storage volume.

### Claim 4 (depends on 1)

The method of claim 1 wherein estimating a number of chunks written during a second replication cycle includes multiplying the host write rate based on the first replication cycle by a length of the second replication cycle.

### Claim 5 (depends on 1)

The method of claim 1 wherein the RPO period is defined by a user.

### Claim 6 (depends on 1)

The method of claim 1 wherein dividing the number of chunks written during the second replication cycle by a RPO period includes scaling the number of chunks written during the second replication cycle.

### Claim 7 (depends on 6)

The method of claim 6, wherein the scaling includes increasing the estimated number of chunks written prior to dividing the estimated number of chunks written by the RPO period, such that the transmitting the chunks written at the target rate occurs within the RPO period.

### Claim 8

A system comprising:
a processor;
a volatile memory; and
a non-volatile memory storing computer program code that when executed on the processor causes the processor to execute a process operable to:
determine a number of chunks written to a storage volume during a first replication cycle;
determine a host write rate based on the number of chunks written to the storage volume during the first replication cycle;
estimate a number of chunks written during a second replication cycle;
determine a target rate based on the estimated number of chunks written during the second replication cycle, the target rate determined by dividing the number of chunks written during the second replication cycle by a recovery point objective (RPO) period; and
transmit chunks written during the second replication cycle at the target rate.

### Claim 9 (depends on 8)

The system of claim 8 wherein the storage volume is storage volume with a content-based storage system.

### Claim 10 (depends on 8)

The system of claim 8 wherein determining a number of chunks written to a storage volume during a first replication cycle includes comparing two address-to-hash (A2H) tables associated with consecutive snapshots of the storage volume.

### Claim 11 (depends on 8)

The system of claim 8 wherein estimating a number of chunks written during a second replication cycle includes multiplying the host write rate based on the first replication cycle by a length of the second replication cycle.

### Claim 12 (depends on 8)

The system of claim 8 wherein the RPO period is defined by a user.

### Claim 13 (depends on 8)

The system of claim 8 wherein dividing the number of chunks written during the second replication cycle by a RPO period includes scaling the number of chunks written during the second replication cycle.

### Claim 14

A computer program product tangibly embodied in a non-transitory computer-readable medium, the computer-readable medium storing program instructions that are executable to:
determine a number of chunks written to a storage volume during a first replication cycle;
determine a host write rate based on the number of chunks written to the storage volume during the first replication cycle;
estimate a number of chunks written during a second replication cycle;
determine a target rate based on the estimated number of chunks written during the second replication cycle, the target rate determined by dividing the number of chunks written during the second replication cycle by a recovery point objective (RPO) period; and
transmit chunks written during the second replication cycle at the target rate.

### Claim 15 (depends on 14)

The computer program product of claim 14 wherein the storage volume is storage volume with a content-based storage system.

### Claim 16 (depends on 14)

The computer program product of claim 14 wherein determining a number of chunks written to a storage volume during a first replication cycle includes comparing two address-to-hash (A2H) tables associated with consecutive snapshots of the storage volume.

### Claim 17 (depends on 14)

The computer program product of claim 14 wherein estimating a number of chunks written during a second replication cycle includes multiplying the host write rate based on the first replication cycle by a length of the second replication cycle.

### Claim 18 (depends on 14)

The computer program product of claim 14 wherein the RPO period is defined by a user.

### Claim 19 (depends on 14)

The computer program product of claim 14 wherein dividing the number of chunks written during the second replication cycle by a RPO period includes scaling the number of chunks written during the second replication cycle.
