# US 12,111,842 B2 · Low latency communications for nodes in replication relationships

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

- Number: US 12,111,842 B2
- Document ID: US12111842B2
- Status: Granted
- Kind: B2
- Application number: 17/695,068
- Filed: 2022-03-15
- Published: 2022-09-15
- Granted: 2024-10-08
- Earliest claimed: 2021-03-15
- Assignees: NVIDIA Corporation
- Applicants: Nvidia Corporation
- Inventors: Siamak Nazari; Jonathan A. McDowell; Nigel Kerr
- Web page: https://patentgrep.com/patent/US12111842B2

## CPC

- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1464: {for networked environments}
- G06F 11/2028: {eliminating a faulty processor or activating a spare}
- G06F 11/2048: {where the redundant components share neither address space nor persistent storage}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 11/2097: {maintaining the standby controller/processing unit updated (initialisation or re-synchronisation thereof G06F11/1658 and subgroups)}
- 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

An initiating node (C) in a storage platform (100) receives a modification request (312, 314) for changing an object (O). The initiating node (C), using system configuration information (127), identifies an owner node (A) and a backup node (B) for the object (O) and sends change data (324, 334) to the owner node (A) and the backup node (B). The owner node (A) modifies the object (O) with the data (324) from the initiating node (C) and sends an update request (352) that does not include the data (324) to the backup node (B). The backup node (B) modifies a backup object (O′) with data (334) from the initiating node (C).

## Claims

### Claim 1

A process comprising:
receiving at a first node in a storage platform a service request that requests modification of a target storage object;
the first node using configuration information to identify in the storage platform a second node that maintains the target storage object and a third node that maintains a backup storage object that replicates the target storage object;
transmitting data for the modification from the first node to both the second node and the third node;
the second node using the data from the first node to perform the modification of the target storage object;
the second node sending an update request to the third node, the update request not including the data; and
the third node, in response to the update request from the second node, using the data the third node received from the first node to modify the backup storage object.

### Claim 2 (depends on 1)

The process of claim 1, wherein the service request is from a source external to the storage platform.

### Claim 3 (depends on 2)

The process of claim 2, wherein receiving the service request comprises a storage processing unit that is a component of the first node and is resident in a server receiving the service request from one of an application running on the server and a storage client connected to the server through a network.

### Claim 4 (depends on 1)

The process of claim 1, wherein transmitting the data from the first node to the second node and the third node comprises transmitting the data over a data network that interconnects a plurality of nodes in the storage platform.

### Claim 5 (depends on 1)

The process of claim 1, further comprising the first node transmitting to the third node metadata, the third node using the metadata and the data from the first node to modify the backup storage object.

### Claim 6 (depends on 1)

The process of claim 1, further comprising the first node transmitting to the second node metadata that indicates that the first node is providing the data to the third node.

### Claim 7 (depends on 1)

The process of claim 1, wherein:
the first node comprises a first storage processor resident in a first server;
the second node comprises a second storage processor in a second server and further comprises backend storage that the second storage processor operates to store data of the target storage object; and
the third node comprises a third storage processor in a third server and further comprises backend storage that the third storage processor operates to store data of the backup storage object.

### Claim 8 (depends on 7)

The process of claim 7, receiving the service request at the first node comprises:
the first server receiving the service request from a client of the first server; and
the first server providing the service request to the first storage processor.

### Claim 9 (depends on 8)

The process of claim 8, wherein the first storage process uses the configuration information to identify the second node and the third node.

### Claim 10 (depends on 1)

The process of claim 1, wherein transmitting data for the modification from the first storage node to both the second node and the third node comprises transmitting the data through a dedicated network in the storage platform.

### Claim 11

A system comprising:
a host interface configured to connect to a host server; and
a processing module configured to receive through the host interface a service request that requests modification of a target storage object in a storage platform and being configured to respond to the service request by performing a process comprising:
using configuration information for the storage platform to identify in the storage platform a first storage node that maintains the target storage object and a second storage node that maintains a backup storage object that replicates the target storage object; and
transmitting data for the modification from the first storage node to both the second node and the third node.

### Claim 12 (depends on 11)

The system of claim 11, further comprising memory containing configuration information for a storage platform including the service processing unit in a storage node of the storage platform.

### Claim 13

A storage platform, comprising:
at least one processor; and
memory storing instructions that, when executed by the at least one processor, cause the storage platform to:
receive, at a first node in the storage platform, a service request that requests modification of a target storage object, the first node using configuration information to identify in the storage platform a second node that maintains the target storage object and a third node that maintains a backup storage object that replicates the target storage object;
transmit data for the modification from the first node to both the second node and the third node, the second node using the data from the first node to perform the modification of the target storage object;
cause the second node to send an update request to the third node, the update request not including the data; and
in response to the update request from the second node, use the data the third node received from the first node to modify the backup storage object.

### Claim 14 (depends on 13)

The storage platform of claim 13, wherein the service request is from a source external to the storage platform.

### Claim 15 (depends on 14)

The storage platform of claim 14, wherein the instructions that, when executed by the at least one processor, further cause the storage platform to receive the service request comprises a storage processing unit that is a component of the first node and is resident in a server receiving the service request from one of an application running on the server and a storage client connected to the server through a network.

### Claim 16 (depends on 13)

The storage platform of claim 13, wherein transmitting the data from the first node to the second node and the third node comprises transmitting the data over a data network that interconnects a plurality of nodes in the storage platform.

### Claim 17 (depends on 13)

The storage platform of claim 13, further comprising the first node transmitting to the third node metadata, the third node using the metadata and the data from the first node to modify the backup storage object.

### Claim 18 (depends on 13)

The storage platform of claim 13, wherein:
the first node comprises a first storage processor resident in a first server;
the second node comprises a second storage processor in a second server and further comprises backend storage that the second storage processor operates to store data of the target storage object; and
the third node comprises a third storage processor in a third server and further comprises backend storage that the third storage processor operates to store data of the backup storage object.

### Claim 19 (depends on 18)

The storage platform of claim 18, wherein the first storage process uses the configuration information to identify the second node and the third node.

### Claim 20 (depends on 13)

The storage platform of claim 13, wherein transmitting data for the modification from the first storage node to both the second node and the third node comprises transmitting the data through a dedicated network in the storage platform.
