IP Library Granted Patent US 11,892,918
Granted Patent B2
US 11,892,918 · App. 17/694,964 · Granted Feb 6, 2024

System and method for availability group database patching

Inventors: Rohan Mohan Rayaraddi (Bengaluru, IN); Tarun Mehta (Bengaluru, IN)
Assignee: Nutanix, Inc.
G06F11/2025G06F8/65G06F9/5038G06F11/0793G06F11/1433G06F11/1464G06F11/2069G06F11/2094G06F2201/80
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,892,918
App. No.
17/694,964
Filed
Mar 15, 2022
Granted
Feb 6, 2024
Kind
B2
Examiner
XU, MICHAEL
Art Unit
2113
USPC
714/13
Abstract

A patching operation on an availability group cluster having a plurality of nodes is disclosed. The patching operation is performed in a plurality of iterations, each including determining a current state of each of the plurality of nodes, selecting a next node based on the current state, and patching the next node. A secondary replica node is selected as the next node before the a primary replica node. Each secondary replica node is patched in accordance with a first priority, upon patching each of the secondary replica node, a failover target node for patching the primary replica node is selected, the failover target node is selected based on a second priority, and according to the second priority, a healthy synchronous secondary replica node of the plurality of nodes is selected as the failover target node before an unhealthy synchronous secondary replica node of the plurality of nodes.

Claims (62)

1. A method comprising:

receiving, by a processor executing computer-readable instructions stored on a memory, a request to apply a patch on a plurality of nodes, one of the plurality of nodes being a primary replica node and remaining nodes of the plurality of nodes being a secondary replica node;

selecting, by the processor, a next node from the plurality of nodes for patching based on a first priority, wherein the first priority is assigned such that each of the secondary replica node is selected before the primary replica node, and wherein the first priority is dynamically updated each time before selecting the next node based on a current state of the plurality of nodes;

selecting, by the processor, a failover target node based on a second priority for patching the primary replica node after patching the each of the secondary replica node; and

patching, by the processor, the primary replica node upon failing over the primary replica node to the failover target node,

wherein according to the second priority, a healthy synchronous secondary replica node is selected as the failover target node before an unhealthy synchronous secondary replica node.

2. The method of claim 1 , wherein the first priority is a positive integer value and the second priority is a negative integer value.

3. The method of claim 1 , wherein selecting the secondary replica node according to the first priority comprises selecting an asynchronous secondary replica node before a synchronous replica node.

4. The method of claim 3 , further comprising selecting the healthy synchronous secondary replica node for patching before the unhealthy synchronous secondary replica node.

5. The method of claim 4 , further comprising selecting the healthy synchronous secondary replica node that is remote for patching before the healthy synchronous secondary replica node that is local.

6. The method of claim 1 , wherein the first priority for the primary replica node is computed based on a sum of a pre-determined integer value and a number of availability groups on the primary replica node.

7. The method of claim 1 , wherein selecting the failover target node according to the second priority further comprises selecting the healthy synchronous secondary replica node that is patched before the healthy synchronous secondary replica node that is unpatched.

8. The method of claim 1 , wherein selecting the failover target node according to the second priority further comprises selecting the healthy synchronous secondary replica node and the unhealthy synchronous secondary replica node before an asynchronous secondary replica node.

9. A system comprising:

a memory having computer-readable instructions stored thereon; and

a processor executing the computer-readable instructions to:

receive a request to apply a patch on a plurality of nodes, one of the plurality of nodes being a primary replica node and remaining nodes of the plurality of nodes being a secondary replica node;

select a next node from the plurality of nodes to patch based on a first priority, wherein the first priority is assigned such that each of the secondary replica node is selected before the primary replica node, and wherein the first priority is dynamically updated each time before selecting the next node based on a current state of the plurality of nodes;

select a failover target node based on a second priority to patch the primary replica node after patching the each of the secondary replica node; and

patch the primary replica node upon failing over the primary replica node to the failover target node,

wherein according to the second priority, a healthy synchronous secondary replica node is selected as the failover target node before an unhealthy synchronous secondary replica node.

10. The system of claim 9 , wherein the first priority is a positive integer value and the second priority is a negative integer value.

11. The system of claim 9 , wherein to select the secondary replica node according to the first priority, the processor further executes computer-readable instructions to select an asynchronous secondary replica node before a synchronous replica node.

12. The system of claim 11 , wherein the processor further executes computer-readable instructions to select the healthy synchronous secondary replica node for patching before the unhealthy synchronous secondary replica node.

13. The system of claim 12 , wherein the processor further executes computer-readable instructions to select the healthy synchronous secondary replica node that is remote for patching before the healthy synchronous secondary replica node that is local.

14. The system of claim 9 , wherein the first priority for the primary replica node is computed based on a sum of a pre-determined integer value and a number of availability groups on the primary replica node.

15. The system of claim 9 , wherein to select the failover target node according to the second priority, the processor further executes computer-readable instructions to select the healthy synchronous secondary replica node that is patched before the healthy synchronous secondary replica node that is unpatched.

16. The system of claim 9 , wherein to select the failover target node according to the second priority, the processor further executes computer-readable instructions to select the healthy synchronous secondary replica node and the unhealthy synchronous secondary replica node before an asynchronous secondary replica node.

17. A non-transitory computer-readable media comprising computer-readable instructions stored thereon that when executed by a processor cause the processor to:

receive a request to apply a patch on a plurality of nodes, one of the plurality of nodes being a primary replica node and remaining nodes of the plurality of nodes being a secondary replica node;

select a next node from the plurality of nodes to patch based on a first priority, wherein the first priority is assigned such that each of the secondary replica node is selected before the primary replica node, and wherein the first priority is dynamically updated each time before selecting the next node based on a current state of the plurality of nodes;

select a failover target node based on a second priority to patch the primary replica node after patching the each of the secondary replica node; and

patch the primary replica node upon failing over the primary replica node to the failover target node,

wherein according to the second priority, a healthy synchronous secondary replica node is selected as the failover target node before an unhealthy synchronous secondary replica node.

18. The non-transitory computer-readable media of claim 17 , wherein the first priority is a positive integer value and the second priority is a negative integer value.

19. The non-transitory computer-readable media of claim 17 , wherein to select the secondary replica node according to the first priority, the processor further executes computer-readable instructions to select an asynchronous secondary replica node before a synchronous replica node.

20. The non-transitory computer-readable media of claim 19 , wherein the processor further executes computer-readable instructions to select the healthy synchronous secondary replica node for patching before the unhealthy synchronous secondary replica node.

21. The non-transitory computer-readable media of claim 20 , wherein the processor further executes computer-readable instructions to select the healthy synchronous secondary replica node that is remote for patching before the healthy synchronous secondary replica node that is local.

22. The non-transitory computer-readable media of claim 17 , wherein the first priority for the primary replica node is computed based on a sum of a pre-determined integer value and a number of availability groups on the primary replica node.

23. The non-transitory computer-readable media of claim 17 , wherein to select the failover target node according to the second priority, the processor further executes computer-readable instructions to select the healthy synchronous secondary replica node that is patched before the healthy synchronous secondary replica node that is unpatched.

24. The non-transitory computer-readable media of claim 17 , wherein to select the failover target node according to the second priority, the processor further executes computer-readable instructions to select the healthy synchronous secondary replica node and the unhealthy synchronous secondary replica node before an asynchronous secondary replica node.

25. The method of claim 1 , wherein the patching of the plurality of nodes is performed using a software profile.

26. The method of claim 25 , wherein the patching using the software profile comprises:

creating a new version of the software profile based on the patch;

cloning the new version of the software profile on a node of the plurality of nodes that is being patched; and

migrating old data from the node to the new version of the software profile.

27. The method of claim 1 , wherein the plurality of nodes are part of an availability group in which the primary replica node stores an availability database and each of the secondary replica node store a copy of the availability database.

28. The method of claim 1 , wherein the first priority of each of the secondary replica node is higher than the primary replica node, and wherein a highest priority node is selected as the next node for patching.

29. The system of claim 9 , wherein the patching of the plurality of nodes is performed using a software profile.

30. The system of claim 29 , wherein to patch using the software profile, the processor further executes computer-readable instructions to:

create a new version of the software profile based on the patch;

clone the new version of the software profile on a node of the plurality of nodes that is being patched; and

migrate old data from the node to the new version of the software profile.

31. The system of claim 9 , wherein the plurality of nodes are part of an availability group in which the primary replica node stores an availability database and each of the secondary replica node store a copy of the availability database.

32. The system of claim 9 , wherein the first priority of each of the secondary replica node is higher than the primary replica node, and wherein a highest priority node is selected as the next node for patching.

33. The non-transitory computer-readable media of claim 17 , wherein the patching of the plurality of nodes is performed using a software profile.

34. The non-transitory computer-readable media of claim 33 , wherein to patch using the software profile, the processor further executes computer-readable instructions to:

create a new version of the software profile based on the patch;

clone the new version of the software profile on a node of the plurality of nodes that is being patched; and

migrate old data from the node to the new version of the software profile.

35. The non-transitory computer-readable media of claim 17 , wherein the plurality of nodes are part of an availability group in which the primary replica node stores an availability database and each of the secondary replica node store a copy of the availability database.

36. The non-transitory computer-readable media of claim 17 , wherein the first priority of each of the secondary replica node is higher than the primary replica node, and wherein a highest priority node is selected as the next node for patching.

Assignments (2)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2022
From: RAYARADDI, ROHAN MOHAN; MEHTA, TARUN
To: NUTANIX, INC.
Reel/Frame 059273/0450 →
Continuity (2)
Provisional Application 63164315 · Mar 22, 2021
Related Publication 20220300387A1 · Sep 22, 2022
Cited By (8)
US 12,373,422 US 12,481,638 US 12,517,865 US 12,572,559 US 12,613,857 US 12,693,939 US 12,693,999 US 12,699,685