IP Library Granted Patent US 12699583
Granted Patent B2
US 12699583 · App. 18/206,798 · Granted Aug 4, 2026

Efficient downscaling and updating of computing clusters

Inventors: Mihir Gangar (Milpitas, CA); Uday Soni (Atlanta, GA); Veera Venkata Naga Rama Satyam Kandula (Cupertino, CA); Sriram Lakkaraju (San Jose, CA)
Assignee: Rubrik, Inc.
G06F9/45558G06F8/65G06F2009/45562G06F2009/45583
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 12699583
App. No.
18/206,798
Granted
Aug 4, 2026
Kind
B2
Abstract

Methods, systems, and devices for data management are described. A data management system may include computing nodes that host respective sets of computing pods. The data management system may identify that some computing nodes each satisfy a resource usage threshold, and may cordon some of the identified computing nodes such that no new pods may be added to the cordoned computing nodes. The system may then perform a software update for the cordoned nodes and the non-cordoned nodes, which may result in replacing a first set of pods (previously on the cordoned nodes) with an updated first set of pods on the set of non-cordoned nodes and replacing a second set of pods (previously on the non-cordoned nods) with an updated set of second pods on the set of non-cordoned nodes. The system may then eliminate the empty set of cordoned nodes based on the update.

Claims (45)

1 . A method, comprising:

identifying, within one or more computing clusters, a group of computing nodes having respective resource usage levels that are below a resource usage threshold, wherein computing nodes in the group of computing nodes host respective sets of one or more computing pods;

cordoning a portion of the identified group of computing nodes having the respective resource usage levels that are below the resource usage threshold to obtain a set of cordoned nodes and a set of non-cordoned nodes, wherein cordoning a computing node prevents the computing node from hosting an additional computing pod;

performing an update for computing pods hosted by the group of computing nodes, wherein performing the update comprises:

replacing a first set of pods originally hosted by the set of cordoned nodes with an updated first set of pods that are newly hosted by the set of non-cordoned nodes, wherein the updated first set of pods are associated with updated software relative to the replaced first set of pods; and

replacing a second set of pods hosted by the set of non-cordoned nodes with an updated second set of pods hosted by the set of non-cordoned nodes, wherein the updated second set of pods are associated with updated software relative to the replaced second set of pods; and

eliminating, after performing the update, the set of cordoned nodes from the one or more computing clusters.

2 . The method of claim 1 , wherein a quantity of computing nodes included in the set of cordoned nodes is based at least in part on a cordoning limit.

3 . The method of claim 2 , wherein the cordoning limit comprises a percentage that is applied to a quantity of computing nodes included in the identified group of computing nodes.

4 . The method of claim 2 , wherein the cordoning limit comprises a maximum quantity of computing nodes that may be included in the set of cordoned nodes.

5 . The method of claim 1 , wherein cordoning the portion of the identified group of computing nodes comprises:

cordoning half of the computing nodes that are included in the identified group of computing nodes.

6 . The method of claim 1 , wherein the resource usage threshold comprises a central processing unit usage threshold, a memory usage threshold, a storage usage threshold, or any combination thereof.

7 . The method of claim 6 , wherein the storage usage threshold comprises an ephemeral storage usage threshold.

8 . The method of claim 1 , wherein replacing the first set of pods hosted by the set of cordoned nodes with the updated first set of pods that are hosted by the set of non-cordoned nodes comprises:

hosting the updated first set of pods on the set of non-cordoned nodes based at least in part on the set of cordoned nodes being prevented, by the cordoning, from hosting the updated first set of pods.

9 . The method of claim 1 , wherein the updated first set of pods and the updated second set of pods are both hosted by the set of non-cordoned nodes after the update.

10 . The method of claim 9 , wherein eliminating the set of cordoned nodes from the one or more computing clusters comprises:

performing a node-scaling procedure that eliminates the set of cordoned nodes from the one or more computing clusters based at least in part on the set of cordoned nodes being empty due to the update.

11 . The method of claim 1 , wherein cordoned nodes within the set of cordoned nodes are empty after the update is performed for the group of computing nodes.

12 . The method of claim 1 , wherein performing the update comprises:

performing the update at a time that network activity is below a network activity threshold.

13 . The method of claim 1 , wherein performing the update comprises:

performing the update based at least in part on an update periodicity, wherein the update periodicity is associated with an availability of the updated software, a scaling target associated with the one or more computing clusters, or both.

14 . The method of claim 1 , wherein the update comprises a Software-as-a-Service (SaaS) product upgrade process.

15 . An apparatus, comprising:

at least one processor;

at least one memory coupled with the at least one processor; and

instructions stored in the at least one memory and executable by the at least one processor to cause the apparatus to:

identify, within one or more computing clusters, a group of computing nodes having respective resource usage levels that are below a resource usage threshold, wherein computing nodes in the group of computing nodes host respective sets of one or more computing pods;

cordon a portion of the identified group of computing nodes having the respective resource usage levels that are below the resource usage threshold to obtain a set of cordoned nodes and a set of non-cordoned nodes, wherein cordoning a computing node prevents the computing node from hosting an additional computing pod;

perform an update for computing pods hosted by the group of computing nodes, wherein, to perform the update, the instructions are executable by the at least one processor to cause the apparatus to:

replace a first set of pods originally hosted by the set of cordoned nodes with an updated first set of pods that are newly hosted by the set of non-cordoned nodes, wherein the updated first set of pods are associated with updated software relative to the replaced first set of pods; and

replace a second set of pods hosted by the set of non-cordoned nodes with an updated second set of pods hosted by the set of non-cordoned nodes, wherein the updated second set of pods are associated with updated software relative to the replaced second set of pods; and

eliminate, after performing the update, the set of cordoned nodes from the one or more computing clusters.

16 . The apparatus of claim 15 , wherein a quantity of computing nodes included in the set of cordoned nodes is based at least in part on a cordoning limit.

17 . The apparatus of claim 16 , wherein the cordoning limit comprises a percentage that is applied to a quantity of computing nodes included in the identified group of computing nodes.

18 . The apparatus of claim 16 , wherein the cordoning limit comprises a maximum quantity of computing nodes that may be included in the set of cordoned nodes.

19 . A non-transitory computer-readable medium storing code, the code comprising instructions executable by at least one processor to:

identify, within one or more computing clusters, a group of computing nodes having respective resource usage levels that are below a resource usage threshold, wherein computing nodes in the group of computing nodes host respective sets of one or more computing pods;

cordon a portion of the identified group of computing nodes having the respective resource usage levels that are below the resource usage threshold to obtain a set of cordoned nodes and a set of non-cordoned nodes, wherein cordoning a computing node prevents the computing node from hosting an additional computing pod;

perform an update for computing pods hosted by the group of computing nodes, wherein, to perform the update, the instructions are executable by the at least one processor to:

replace a first set of pods originally hosted by the set of cordoned nodes with an updated first set of pods that are newly hosted by the set of non-cordoned nodes, wherein the updated first set of pods are associated with updated software relative to the replaced first set of pods; and

replace a second set of pods hosted by the set of non-cordoned nodes with an updated second set of pods hosted by the set of non-cordoned nodes, wherein the updated second set of pods are associated with updated software relative to the replaced second set of pods; and

eliminate, after performing the update, the set of cordoned nodes from the one or more computing clusters.