IP Library Granted Patent US 12,032,944
Granted Patent B2
US 12,032,944 · App. 17/948,137 · Granted Jul 9, 2024

State machine operation for non-disruptive update of a data management system

Inventors: Muthugopalakrishnan Adiseshan (Bangalore, IN); Sai Sandeep Moparthi (Mountain View, CA); Ajay Shekar (San Francisco, CA); Pankaj Kumar (Santa Clara, CA); Ravi C Kondamuru (Sunnyvale, CA); Smriti Agrawal (Sunnyvale, CA); Srinivasan P S (Bengaluru, IN)
Assignee: Rubrik, Inc.
G06F8/65
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 12,032,944
App. No.
17/948,137
Granted
Jul 9, 2024
Kind
B2
Abstract

Aspects of data management are described. A cluster-level state machine may be instantiated for an update procedure for updating software for a cluster of storage nodes, where the update procedure may be configured to serially update the plurality of storage nodes. The cluster-level state machine may be configured to monitor the update procedure at a cluster level. One or more node-level state machines may be instantiated for the update procedure, where the one or more node-level state machines may be configured to monitor the performance of the update procedure at a storage node level. During an update procedure, the state of the cluster-level state machine may reflect a state of the cluster of storage nodes and the state of a node-level state machine may reflect a state of a respective one or more storage nodes.

Claims (59)

1. A method, comprising:

instantiating, by a data management system, a cluster-level state machine associated with an update procedure for updating software for a cluster of storage nodes from a first version to a second version, wherein the cluster of storage nodes comprises a plurality of storage nodes, wherein the update procedure is configured to serially update subsets of the plurality of storage nodes, and wherein the cluster-level state machine is configured to monitor a performance of the update procedure at a cluster level that spans the plurality of storage nodes;

instantiating, by the data management system, one or more node-level state machines responsive to the update procedure being initiated, wherein the one or more node-level state machines are configured to monitor the performance of the update procedure at a storage node level that is specific to a respective subset of the plurality of storage nodes; and

performing, by the data management system, the update procedure for the cluster of storage nodes, wherein:

a state of the cluster-level state machine reflects a state of the cluster of storage nodes, and

a state of a node-level state machine of the one or more node-level state machines reflects a state of the respective subset of the plurality of storage nodes for the node-level state machine.

2. The method of claim 1 , wherein instantiating the one or more node-level state machines comprises:

instantiating a respective node-level state machine for each storage node in the cluster of storage nodes.

3. The method of claim 1 , further comprising:

transitioning, based at least in part on performing the update procedure, the cluster-level state machine to a rolling-update state, wherein the rolling-update state is associated with serially updating the subsets of the plurality of storage nodes.

4. The method of claim 1 , wherein:

the cluster-level state machine remains in a rolling-update state while the subsets of the plurality of storage nodes are serially updated, and

each of the one or more node-level state machines undergoes one or more state transitions while the respective subset of the plurality of storage nodes for the node-level state machine is being updated.

5. The method of claim 1 , further comprising:

initiating, based at least in part on the cluster-level state machine entering a rolling-update state for serially updating the plurality of storage nodes, a preparing state at the one or more node-level state machines, wherein the plurality of storage nodes are prepared for updating while the one or more node-level state machines are in the preparing state.

6. The method of claim 1 , further comprising:

initiating an update for a subset of the plurality of storage nodes based at least in part on the cluster-level state machine entering a rolling-update state for serially updating the plurality of storage nodes, wherein the node-level state machine of the one or more node-level state machines corresponds to the subset of the plurality of storage nodes; and

transitioning, by the node-level state machine, from a preparing state to a configuring state based at least in part on the update being initiated for the node-level state machine, wherein system parameters of the second version are configured at the subset of the plurality of storage nodes while the node-level state machine is in the configuring state.

7. The method of claim 6 , wherein a plurality of node-level state machines of the one or more node-level state machines remain in the preparing state while the node-level state machine transitions from the preparing state to the configuring state.

8. The method of claim 6 , further comprising:

transitioning, by the node-level state machine, from the configuring state to a migrating state, wherein values of system parameters of the first version are transferred to corresponding system parameters of the second version while the node-level state machine is in the migrating state.

9. The method of claim 8 , further comprising:

transitioning, by the node-level state machine, from the migrating state to a restarting state, wherein the subset of the plurality of storage nodes are restarted while the node-level state machine is in the restarting state; and

transitioning, by a second node-level state machine of the one or more node-level state machines, from the preparing state to the configuring state based at least in part on the node-level state machine exiting the restarting state.

10. The method of claim 1 , further comprising:

reaching a synchronization point in the update procedure.

11. The method of claim 10 , further comprising:

pausing the update procedure based at least in part on reaching the synchronization point; and

performing a testing procedure for a service that is supported by the cluster of storage nodes during the update procedure.

12. The method of claim 11 , further comprising:

determining that the service is running during the update procedure as expected based at least in part on the testing procedure; and

resuming the update procedure based at least in part on determining that the service is running as expected.

13. The method of claim 11 , further comprising:

identifying an error in the service based at least in part on the testing procedure; and

sending, via a user interface, an indication of the error in the service.

14. The method of claim 13 , further comprising:

receiving, via the user interface, an input that addresses the error in the service; and

resuming the update procedure based at least in part on the error being addressed.

15. The method of claim 10 , further comprising:

skipping a task associated with the synchronization point, a state associated with the synchronization point, or both, based at least in part on reaching the synchronization point.

16. The method of claim 10 , wherein the synchronization point is reached after updating a first storage node of the plurality of storage nodes and before updating a second storage node of the plurality of storage nodes.

17. An apparatus, comprising:

a processor; and

memory coupled with the processor, the memory storing instructions executable by the processor to cause the apparatus to:

instantiate, by a data management system, a cluster-level state machine associated with an update procedure for updating software for a cluster of storage nodes from a first version to a second version, wherein the cluster of storage nodes comprises a plurality of storage nodes, wherein the update procedure is configured to serially update subsets of the plurality of storage nodes, and wherein the cluster-level state machine is configured to monitor a performance of the update procedure at a cluster level that spans the plurality of storage nodes;

instantiate, by the data management system, one or more node-level state machines responsive to the update procedure being initiated, wherein the one or more node-level state machines are configured to monitor the performance of the update procedure at a storage node level that is specific to a respective subset of the plurality of storage nodes; and

perform, by the data management system, the update procedure for the cluster of storage nodes, wherein:

a state of the cluster-level state machine reflects a state of the cluster of storage nodes, and

a state of a node-level state machine of the one or more node-level state machines reflects a state of the respective subset of the plurality of storage nodes for the node-level state machine.

18. The apparatus of claim 17 , wherein the instructions are further executable by the processor to cause the apparatus to:

transition, based at least in part on performing the update procedure, the cluster-level state machine to a rolling-update state, wherein the rolling-update state is associated with serially updating the subsets of the plurality of storage nodes.

19. A non-transitory, computer-readable medium storing code that comprises instructions executable by a processor of an electronic device to cause the electronic device to:

instantiate, by a data management system, a cluster-level state machine associated with an update procedure for updating software for a cluster of storage nodes from a first version to a second version, wherein the cluster of storage nodes comprises a plurality of storage nodes, wherein the update procedure is configured to serially update subsets of the plurality of storage nodes, and wherein the cluster-level state machine is configured to monitor a performance of the update procedure at a cluster level that spans the plurality of storage nodes;

instantiate, by the data management system, one or more node-level state machines responsive to the update procedure being initiated, wherein the one or more node-level state machines are configured to monitor the performance of the update procedure at a storage node level that is specific to a respective subset of the plurality of storage nodes; and

perform, by the data management system, the update procedure for the cluster of storage nodes, wherein:

a state of the cluster-level state machine reflects a state of the cluster of storage nodes, and

a state of a node-level state machine of the one or more node-level state machines reflects a state of the respective subset of the plurality of storage nodes for the node-level state machine.

20. The non-transitory, computer-readable medium of claim 19 , wherein the instructions are further executable by the processor to cause the electronic device to:

transition, based at least in part on performing the update procedure, the cluster-level state machine to a rolling-update state, wherein the rolling-update state is associated with serially updating the subsets of the plurality of storage nodes.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 64659/0236 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071566/0187 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2024
From: ADISESHAN, MUTHUGOPALAKRISHNAN; MOPARTHI, SAI SANDEEP; SHEKAR, AJAY; KUMAR, PANKAJ; KONDAMURU, RAVI C.; AGRAWAL, SMRITI; PS, SRINIVASAN
To: RUBRIK, INC.
Reel/Frame 067360/0591 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Aug 21, 2023
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 064659/0236 →
Continuity (1)
Related Publication 20240095011A1 · Mar 21, 2024