IP Library Granted Patent US 11,663,084
Granted Patent B2
US 11,663,084 · App. 15/672,159 · Granted May 30, 2023

Auto-upgrade of remote data management connectors

Inventors: Jiangbin Luo (Cupertino, CA); Guilherme Vale Ferreira Menezes (Santa Clara, CA)
Assignee: Rubrik, Inc.
G06F11/1451G06F8/65G06F11/1415G06F11/1456G06F11/20G06F16/1748G06F9/45533G06F2201/815G06F2201/84
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,663,084
App. No.
15/672,159
Granted
May 30, 2023
Kind
B2
Abstract

Methods and systems for automatically upgrading or synchronizing a remote data management agent running on a remote host machine (e.g., a hardware server) to a particular version that is in-sync with a corresponding version used by a cluster of data storage nodes controlling the remote data management agent are described. The remote agent may be initially installed on the remote host and subsequent updates to the remote agent may be performed using the remote agent itself without requiring intervention by the remote host. The remote agent may comprise a backup agent and a bootstrap agent that are each exposed in different network ports or associated with different port numbers or networking addresses. The backup agent may perform data backup related tasks for backing up files stored on the remote host and the bootstrap agent may perform upgrade related tasks for upgrading the backup agent.

Claims (63)

1. A method for operating a data management system, comprising:

acquiring, at a cluster of data storage nodes from a backup agent at a host computing device that is remote from the cluster of data storage nodes, a first set of data chunks corresponding with a first snapshot of an electronic file at the host computing device during a first time period, wherein the first set of data chunks are acquired via a first port of the host computing device that is associated with the backup agent, and wherein the backup agent is associated with a first version of the backup agent during the first time period;

detecting a software update for the cluster of data storage nodes, the software update from a first software version for the cluster of data storage nodes to a second software version for the cluster of data storage nodes;

determining an updated list of compatible backup agent versions in response to detecting the software update for the cluster of data storage nodes, the updated list of compatible backup agent versions comprising backup agent versions that are compatible with the second software version for the cluster of data storage nodes;

transmitting, prior to a backup of the electronic file on the host computing device and via a second port of the host computing device that is associated with a bootstrap agent, a request for an indication of the first version of the backup agent;

detecting, based at least in part on the request, that the first version of the backup agent is not included in the updated list of compatible backup agent versions;

based on detecting that the first version of the backup agent is not included in the updated list of compatible backup agent versions, transferring a second version of the backup agent that is included in the updated list of compatible backup agent versions to the bootstrap agent via the second port of the host computing device;

directing the bootstrap agent to overwrite the first version of the backup agent with the second version of the backup agent; and

acquiring, at the cluster of data storage nodes from the backup agent via the first port of the host computing device, a second set of data chunks corresponding with a second snapshot of the electronic file during a second time period subsequent to the first time period, wherein the backup agent is associated with the second version of the backup agent during the second time period.

2. The method of claim 1 , wherein detecting the software update for the cluster of data storage nodes comprises:

detecting that a software update has occurred to a data storage node within the cluster of data storage nodes, wherein the updated list is determined for the cluster of data storage nodes in response to detecting that the software update has occurred to the data storage node.

3. The method of claim 2 , further comprising:

detecting that the first version of the backup agent needs to be upgraded to the second version of the backup agent based at least in part on detecting that the first version of the backup agent is not included in the updated list of compatible backup agent versions for the cluster of data storage nodes.

4. The method of claim 1 , further comprising:

padding an executable file for the second version of the backup agent such that the executable file has a particular file size, the transferring the second version of the backup agent to the bootstrap agent including transferring the executable file to the bootstrap agent, the first version of the backup agent having the particular file size.

5. The method of claim 1 , wherein:

the second version of the backup agent comprises a newer version of the backup agent compared with the first version of the backup agent.

6. The method of claim 1 , wherein:

the backup agent runs on a virtual machine;

the bootstrap agent runs on the virtual machine; and

the electronic file comprises a database file stored on the virtual machine.

7. The method of claim 1 , wherein:

the first set of data chunks is generated via application of a first fingerprinting algorithm; and

the second set of data chunks is generated via application of a second fingerprinting algorithm different from the first fingerprinting algorithm.

8. The method of claim 1 , wherein:

the first set of data chunks is generated via application of a first partitioning of the electronic file; and

the second set of data chunks is generated via application of a second partitioning of the electronic file different from the first partitioning of the electronic file.

9. A data management system, comprising:

a data storage device configured to store a second version of a backup agent; and

one or more processors in communication with the data storage device, the one or more processors configured to:

acquire, at a cluster of data storage nodes from a backup agent at a host computing device that is remote from the cluster of data storage nodes, a first set of data chunks corresponding with a first snapshot of an electronic file at the host computing device during a first time period, wherein the one or more processors configured to acquire the first set of data chunks via a first port of the host computing device that is associated with the backup agent, and wherein the backup agent is associated with a first version of the backup agent during the first time period;

detect a software update for the cluster of data storage nodes, the software update from a first software version for the cluster of data storage nodes to a second software version for the cluster of data storage nodes;

determine an updated list of compatible backup agent versions in response to detecting the software update for the cluster of data storage nodes, the updated list of compatible backup agent versions comprising backup agent versions that are compatible with the second software version for the cluster of data storage nodes;

transmit, prior to a backup of the electronic file on the host computing device and via a second port of the host computing device that is associated with a bootstrap agent, a request for an indication of the first version of the backup agent;

detect, based at least in part on the request, that the first version of the backup agent is not included in the updated list of compatible backup agent versions;

based on detecting that the first version of the backup agent is not included in the updated list of compatible backup agent versions, transfer the second version of the backup agent to the bootstrap agent via the second port of the host computing device, wherein the second version of the backup agent included in the updated list of compatible backup agent versions;

direct the bootstrap agent to overwrite the first version of the backup agent with the second version of the backup agent; and

acquire, at the cluster of data storage nodes from the backup agent via the first port of the host computing device, a second set of data chunks corresponding with a second snapshot of the electronic file during a second time period subsequent to the first time period, wherein the backup agent is associated with the second version of the backup agent during the second time period.

10. The data management system of claim 9 , wherein:

to detect the software update for the cluster of data storage nodes, the one or more processors are configured to detect that a software update has occurred to a data storage node within the cluster of data storage nodes; and

the one or more processors are configured to determine the updated list for the cluster of data storage nodes in response to detecting that the software update has occurred to the data storage node.

11. The data management system of claim 10 , wherein the one or more processors are further configured to:

detect that the first version of the backup agent needs to be upgraded to the second version of the backup agent based at least in part on detecting that the first version of the backup agent is not included in the updated list of compatible backup agent versions for the cluster of data storage nodes.

12. The data management system of claim 9 , wherein the one or more processors are further configured to:

pad the second version of the backup agent such that the second version of the backup agent has a particular file size, the first version of the backup agent having the particular file size.

13. The data management system of claim 9 , wherein:

the second version of the backup agent comprises an older version of the backup agent compared with the first version of the backup agent.

14. The data management system of claim 9 , wherein:

the backup agent runs on a hardware server;

the bootstrap agent runs on the hardware server; and

the electronic file comprises a database file stored on the hardware server.

15. The data management system of claim 9 , wherein the one or more processors are configured to:

generate the first set of data chunks via application of a first fingerprinting algorithm; and

generate the second set of data chunks via application of a second fingerprinting algorithm different from the first fingerprinting algorithm.

16. One or more non-transitory storage devices containing processor readable code for programming one or more processors to perform a method for operating a data management system, the processor readable code configured to:

acquire, at a cluster of data storage nodes from a backup agent at a host computing device that is remote from the cluster of data storage nodes, a first set of data chunks corresponding with a first snapshot of an electronic file at the host computing device during a first time period, wherein the first set of data chunks are acquired via a first port of the host computing device that is associated with the backup agent, and wherein the backup agent is associated with a first version of the backup agent during the first time period;

detect a software update for the cluster of data storage nodes, the software update from a first software version for the cluster of data storage nodes to a second software version for the cluster of data storage nodes;

determine an updated list of compatible backup agent versions in response to detecting the software update for the cluster of data storage nodes, the updated list of compatible backup agent versions comprising backup agent versions that are compatible with the second software version for the cluster of data storage nodes;

transmit, prior to a backup of the electronic file on the host computing device and via a second port of the host computing device that is associated with a bootstrap agent, a request for an indication of the first version of the backup agent;

detect, based at least in part on the request, that the first version of the backup agent is not included in the updated list of compatible backup agent versions;

based on detecting that the first version of the backup agent is not included in the updated list of compatible backup agent versions, transfer a second version of the backup agent that is included in the updated list of compatible backup agent versions to the bootstrap agent via the second port of the host computing device;

direct the bootstrap agent to replace the first version of the backup agent with the second version of the backup agent; and

acquire, at the cluster of data storage nodes from the backup agent via the first port of the host computing device, a second set of data chunks corresponding with a second snapshot of the electronic file during a second time period subsequent to the first time period, wherein the backup agent is associated with the second version of the backup agent during the second time period.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 60333/0323 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071565/0602 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 10, 2022
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 060333/0323 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2017
From: LUO, JIANGBIN; VALE FERREIRA MENEZES, GUILHERME
To: RUBRIK, INC.
Reel/Frame 043249/0330 →
Continuity (1)
Related Publication 20190050296A1 · Feb 14, 2019