# US 12,192,280 B2 · Reliable and high-performance connectivity between control-planes and data-planes for a data management system

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

- Number: US 12,192,280 B2
- Document ID: US12192280B2
- Status: Granted
- Kind: B2
- Application number: 18/320,603
- Filed: 2023-05-19
- Published: 2024-11-21
- Granted: 2025-01-07
- Earliest claimed: 2023-05-19
- Assignees: Rubrik, Inc.
- Applicants: Rubrik, Inc.
- Inventors: Charlotte Tong; David Anthony Terei; Jonathan Carlyle Derryberry; Jun Xu; Vinay Patil
- Web page: https://patentgrep.com/patent/US12192280B2

## CPC

- 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 45/74: Address processing for routing
- H04L 63/20: {for managing network security; network security policies in general (filtering policies H04L63/0227)}
- H04L 67/1014: based on the content of a request
- H04L 67/563: Data redirection of data network streams
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods, systems, and devices for data management are described. A data management system may include a control-plane common to multiple customers, where customer data for each customer is stored on a private data plane (e.g., at a remote node cluster). Each node cluster includes a controller which manages the nodes of the node cluster. A taskchain controller of the control plane may directly communicate with the nodes of the multiple node clusters, for example, via respective proxy services hosted at the node controllers or via respective service buses. The taskchain controller may communicate a command to add a new node to the node controller, and the node controller may create a new node based on the command. Future communications (e.g., commands to perform data protection tasks such as backup or restore operations) may be routed to the node via the proxy service or a service bus.

## Claims

### Claim 1

A method, comprising:
establishing, at a taskchain controller of a data management system, a direct connection between the taskchain controller and a node controller of a first node cluster of a plurality of node clusters, wherein the direct connection is based on a first network address of the node controller, wherein the plurality of node clusters are associated with a respective plurality of tenants of the data management system, wherein the taskchain controller of the data management system is operable to schedule data protection tasks for the plurality of node clusters;
sending, from the taskchain controller to the node controller via the direct connection, a request to add a node to the first node cluster; and
identifying, based on sending the request, a second network address associated with the first node cluster via which to route one or more data protection tasks from the taskchain controller to the node.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving, at the taskchain controller from the node controller and in response to the request, an indication of an identifier for the node; and
sending, from the taskchain controller directly to the second network address, a control message that indicates to perform a data protection task at the node, wherein the control message indicates the identifier for the node.

### Claim 3 (depends on 2)

The method of claim 2, wherein sending the control message comprises:
sending the control message via the direct connection to a proxy service at the node controller for routing to the node based at least in part on the identifier, wherein the second network address is a same network address as the first network address.

### Claim 4 (depends on 2)

The method of claim 2, wherein identifying the second network address comprises:
receiving an indication of the second network address for a second node of the first node cluster; and
establishing a second direct connection between the taskchain controller and the second node based on the second network address, wherein the control message is sent via the second direct connection.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
sending, from the taskchain controller to the node controller via the direct connection, a second request to add a service bus for the first node cluster, wherein reception of the indication of the second network address is responsive to the second request, and wherein the second node is the service bus.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
identifying a traffic load at the node controller exceeds a threshold, wherein sending the second request is based at least in part on identifying the traffic load at the node controller exceeds the threshold.

### Claim 7 (depends on 5)

The method of claim 5, further comprising:
identifying a traffic load at the node controller is below a threshold;
sending, to the node controller via the direct connection, a third request to remove the service bus based at least in part on identifying the traffic load at the node controller is below the threshold; and
terminating the second direct connection based at least in part on identifying the traffic load at the node controller is below the threshold.

### Claim 8 (depends on 4)

The method of claim 4, further comprising:
receiving, at the taskchain controller from the node controller, an indication of a proxy service at the node controller via which to route the one or more data protection tasks from the taskchain controller to the node; and
sending, from the taskchain controller to the proxy service via the direct connection, a second control message that indicates to perform a second data protection task at the node, wherein the second control message indicates the identifier for the node.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
identifying a traffic load at the node controller exceeds a threshold; and
sending, from the taskchain controller to the second node via the second direct connection, a third control message that indicates to perform a third data protection task at the node, wherein the third control message indicates the identifier for the node.

### Claim 10 (depends on 2)

The method of claim 2, further comprising:
sending, from the taskchain controller to the node controller via the direct connection, a second request to add a second node to the first node cluster;
receiving, at the taskchain controller from the node controller and in response to the request, an indication of a second identifier for the second node; and
sending, from the taskchain controller directly to the second network address, a second control message that indicates to perform a second data protection task at the second node, wherein the second control message indicates the identifier for the second node.

### Claim 11 (depends on 2)

The method of claim 2, wherein the control message comprises a transmission control protocol packet.

### Claim 12 (depends on 2)

The method of claim 2, wherein the data protection task comprises at least one of a write operation or a read operation.

### Claim 13

An apparatus, comprising:
at least one processor;
memory coupled with the at least one processor; and
instructions stored in the memory and executable by the at least one processor to cause the apparatus to:
establish, at a taskchain controller of a data management system, a direct connection between the taskchain controller and a node controller of a first node cluster of a plurality of node clusters, wherein the direct connection is based on a first network address of the node controller, wherein the plurality of node clusters are associated with a respective plurality of tenants of the data management system, wherein the taskchain controller of the data management system is operable to schedule data protection tasks for the plurality of node clusters;
send, from the taskchain controller to the node controller via the direct connection, a request to add a node to the first node cluster; and
identify, based on sending the request, a second network address associated with the first node cluster via which to route one or more data protection tasks from the taskchain controller to the node.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein the instructions are further executable by the at least one processor to cause the apparatus to:
receive, at the taskchain controller from the node controller and in response to the request, an indication of an identifier for the node; and
send, from the taskchain controller directly to the second network address, a control message that indicates to perform a data protection task at the node, wherein the control message indicates the identifier for the node.

### Claim 15 (depends on 14)

The apparatus of claim 14, wherein the instructions to send the control message are executable by the at least one processor to cause the apparatus to:
send the control message via the direct connection to a proxy service at the node controller for routing to the node based at least in part on the identifier, wherein the second network address is a same network address as the first network address.

### Claim 16 (depends on 14)

The apparatus of claim 14, wherein the instructions to identify the second network address are executable by the at least one processor to cause the apparatus to:
receive an indication of the second network address for a second node of the first node cluster; and
establish a second direct connection between the taskchain controller and the second node based on the second network address, wherein the control message is sent via the second direct connection.

### Claim 17 (depends on 16)

The apparatus of claim 16, wherein the instructions are further executable by the at least one processor to cause the apparatus to:
send, from the taskchain controller to the node controller via the direct connection, a second request to add a service bus for the first node cluster, wherein reception of the indication of the second network address is responsive to the second request, and wherein the second node is the service bus.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein the instructions are further executable by the at least one processor to cause the apparatus to:
identify a traffic load at the node controller exceeds a threshold, wherein sending the second request is based at least in part on identifying the traffic load at the node controller exceeds the threshold.

### Claim 19 (depends on 17)

The apparatus of claim 17, wherein the instructions are further executable by the at least one processor to cause the apparatus to:
identify a traffic load at the node controller is below a threshold;
send, to the node controller via the direct connection, a third request to remove the service bus based at least in part on identifying the traffic load at the node controller is below the threshold; and
terminate the second direct connection based at least in part on identifying the traffic load at the node controller is below the threshold.

### Claim 20

A non-transitory computer-readable medium storing code, the code comprising instructions executable by at least one processor to:
establish, at a taskchain controller of a data management system, a direct connection between the taskchain controller and a node controller of a first node cluster of a plurality of node clusters, wherein the direct connection is based on a first network address of the node controller, wherein the plurality of node clusters are associated with a respective plurality of tenants of the data management system, wherein the taskchain controller of the data management system is operable to schedule data protection tasks for the plurality of node clusters;
send, from the taskchain controller to the node controller via the direct connection, a request to add a node to the first node cluster; and
identify, based on sending the request, a second network address associated with the first node cluster via which to route one or more data protection tasks from the taskchain controller to the node.
