# US 12,001,453 B2 · Asynchronous cross-region block volume replication

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

- Number: US 12,001,453 B2
- Document ID: US12001453B2
- Status: Granted
- Kind: B2
- Application number: 17/964,643
- Filed: 2022-10-12
- Published: 2023-02-02
- Granted: 2024-06-04
- Earliest claimed: 2020-11-06
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Venkata Harish Mallipeddi; Travis John Portz; Jeppe Oskar Meyer Larsen; Mario Tayah
- Web page: https://patentgrep.com/patent/US12001453B2

## CPC

- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 16/273: {Asynchronous replication or reconciliation}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/065: {Replication mechanisms}
- G06F 11/1469: {Backup restoration techniques}
- 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 are provided for cross-region replication of block volume data. The techniques include a method wherein a computer system implements operations including creating a first snapshot of a block volume at a first geographic region and at a first logical time, the block volume including a plurality of partitions, transmitting first snapshot data to an object storage system at a second geographic region, creating a second snapshot of the block volume at the first geographic region and at a second logical time, generating a plurality of deltas, transmitting a plurality of delta data sets corresponding to the plurality of deltas to the object storage system at the second geographic region, generating a checkpoint at least in part by aggregating object metadata associated with the plurality of deltas and the first snapshot, receiving a restore request to generate a restore volume, and generating the restore volume from the checkpoint.

## Claims

### Claim 1

A method, comprising:
receiving, by a computing system, a restore request for restoring a block volume of a first data center located in a first geographic region;
generating, by the computing system, a standby volume at a second data center located in a second geographic region at least by:
creating, by the computing system, the standby volume comprising replicated by replicating data from a first state of the block volume corresponding to a first checkpoint for the block volume at a first point in time;
applying, by the computing system, an update to the standby volume,
wherein the update corresponds to and at least one delta comprising a difference between (a) the first state of the block volume corresponding to the first checkpoint snapshot of the block volume and (b) a second state of the block volume corresponding to a second checkpoint snapshot of for the block volume at a second point in time that is subsequent to the first point in time;
generating, by the computing system, a restored block volume clone of the standby volume at the first data center located in the first geographic region, the restored block volume being a clone of the standby volume at the second data center located in the second geographic region;
restoring, by the computing system, the replicated data from the standby volume at the second data center located in the second geographic region to the restored block volume of the first data center located at the first geographic region; and
instructing, by the computing system, the first data center located in the first geographic region to commence input/output (I/O) operations corresponding to the restored block volume.

### Claim 2 (depends on 1)

The method of claim 1, further comprising generating, by the computing system, the second checkpoint at least in part by aggregating object metadata associated with the at least one delta and the first checkpoint, wherein the checkpoint comprises a manifest of the object metadata, wherein the object metadata comprises chunk pointers corresponding to a plurality of chunk objects of the second geographic region, and wherein aggregating the object metadata comprises updating a manifest to reflect a plurality of differences between a plurality of delta data sets comprising the at least one delta and the first checkpoint data.

### Claim 3 (depends on 1)

The method of claim 1, wherein the standby volume corresponds to a structure of the block volume of the first data center located in the first geographic region.

### Claim 4 (depends on 3)

The method of claim 3, wherein the structure comprises at least one of a size of the block volume or a partitioning of the block volume.

### Claim 5 (depends on 3)

The method of claim 3, wherein the standby volume further corresponds to a mapping of blocks to the replicated data stored as chunk objects.

### Claim 6 (depends on 1)

The method of claim 1, wherein the standby volume is configured to be ineligible for input/output operations.

### Claim 7 (depends on 1)

The method of claim 1, wherein the restore request comprises a failback request configured to request a restore of the replicated data of the block volume of the first data center at the first data center in the first geographic region.

### Claim 8 (depends on 7)

The method of claim 7, wherein the failback request is made at least in response to a failure of the first data center.

### Claim 9 (depends on 1)

The method of claim 1, wherein restoring the replicated data comprises remapping data to new mappings corresponding to new data locations in the restored block volume.

### Claim 10

A computing system, comprising a memory configured to store computer-executable instructions; and
one or more processors configured to access the memory and execute the computer-executable instructions to at least:
receive a restore request for restoring a block volume of a first data center located in a first geographic region;
generate a standby volume at a second data center located in a second geographic region at least to:
create the standby volume by replicating data from a first state of the block volume corresponding to a first checkpoint for the block volume at a first point in time;
apply an update to the standby volume,
wherein the update corresponds to a difference between (a) the first state of the block volume corresponding to the first checkpoint and (b) a second state of the block volume corresponding to a second checkpoint for the block volume at a second point in time that is subsequent to the first point in time;
generate a restored block volume at the first data center located in the first geographic region, the restored block volume being a clone of the standby volume at the second data center located in the second geographic region;
restore the replicated data from the standby volume at the second data center located in the second geographic region to the restored block volume of the first data center located at the first geographic region; and
instruct the first data center located in the first geographic region to commence input/output (I/O) operations corresponding to the restored block volume.

### Claim 11 (depends on 10)

The computing system of claim 10, wherein the one or more processors are further configured to execute the computer-executable instructions to at least generate the second checkpoint at least in part by aggregating object metadata associated with the at least one delta and the first checkpoint, wherein the checkpoint comprises a manifest of the object metadata, wherein the object metadata comprises chunk pointers corresponding to a plurality of chunk objects of the second geographic region, and wherein aggregating the object metadata comprises updating a manifest to reflect a plurality of differences between a plurality of delta data sets comprising the at least one delta and the first checkpoint data.

### Claim 12 (depends on 10)

The computing system of claim 10, wherein the standby volume corresponds to at least one of a structure of the block volume of the first data center located in the first geographic region or a mapping of blocks to the replicated data stored as chunk objects.

### Claim 13 (depends on 12)

The computing system of claim 12, wherein the structure comprises at least one of a size of the block volume or a partitioning of the block volume.

### Claim 14 (depends on 10)

The computing system of claim 10, wherein the restore request comprises a failback request configured to request a restore of the replicated data of the block volume of the first data center at the first data center in the first geographic region, and wherein the failback request is made at least in response to a failure of the first data center.

### Claim 15 (depends on 10)

The computing system of claim 10, wherein restoring the replicated data comprises remapping data to new mappings corresponding to new data locations in the restored block volume.

### Claim 16

A non-transitory computer-readable medium, storing computer-executable instructions that, when executed, cause one or more processors of a computing system to perform operations comprising:
receiving a restore request for restoring a block volume of a first data center located in a first geographic region;
generating a standby volume at a second data center located in a second geographic region at least by:
creating the standby volume by replicating data from a first state of the block volume corresponding to a first checkpoint for the block volume at a first point in time;
applying an update to the standby volume,
wherein the update corresponds to a difference between (a) the first state of the block volume corresponding to the first checkpoint and (b) a second state of the block volume corresponding to a second checkpoint for the block volume at a second point in time that is subsequent to the first point in time;
generating a restored block volume at the first data center located in the first geographic region, the restored block volume being a clone of the standby volume at the second data center located in the second geographic region;
restoring the replicated data from the standby volume at the second data center located in the second geographic region to the restored block volume of the first data center located at the first geographic region; and
instructing the first data center located in the first geographic region to commence input/output (I/O) operations corresponding to the restored block volume.

### Claim 17 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the operations further comprise generating the second checkpoint at least in part by aggregating object metadata associated with the at least one delta and the first checkpoint, wherein the checkpoint comprises a manifest of the object metadata, wherein the object metadata comprises chunk pointers corresponding to a plurality of chunk objects of the second geographic region, and wherein aggregating the object metadata comprises updating a manifest to reflect a plurality of differences between a plurality of delta data sets comprising the at least one delta and the first checkpoint data.

### Claim 18 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the standby volume corresponds to at least one of a structure of the block volume of the first data center located in the first geographic region or a mapping of blocks to the replicated data stored as chunk objects.

### Claim 19 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein the structure comprises at least one of a size of the block volume or a partitioning of the block volume.

### Claim 20 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the restore request comprises a failback request configured to request a restore of the replicated data of the block volume of the first data center at the first data center in the first geographic region, and wherein the failback request is made at least in response to a failure of the first data center, and wherein restoring the replicated data comprises remapping data to new mappings corresponding to new data locations in the restored block volume.
