IP Library Granted Patent US 12,099,421
Granted Patent B2
US 12,099,421 · App. 17/962,010 · Granted Sep 24, 2024

Implementing availability domain aware replication policies

Inventors: Mohammad Mahmood (Karnataka, IN); Roger Sean Liao (Durham, NC)
Assignee: Vista IP Law Group, LLP
G06F11/2094G06F3/0619G06F3/064G06F3/065G06F3/067G06F2201/805
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,099,421
App. No.
17/962,010
Filed
Oct 7, 2022
Granted
Sep 24, 2024
Kind
B2
Art Unit
2114
USPC
714/6.3
Abstract

Systems for distributed data storage. A method commences upon accessing a set of data items that describe computing nodes to be organized into a ring topology. The ring topology and distributed data storage policies are characterized by quantitative failure-resilient characteristics such as a replication factor. Various characteristics of the topology serve to bound two or more availability domains of the ring into which the computing nodes can be mapped. A set of quantitative values pertaining to respective quantitative failure-resilient characteristics are used for enumerating candidate ring topologies where the computing nodes are mapped into the availability domains. Using the quantitative failure-resilient characteristics, alternative candidate ring topologies are evaluated so as to determine a configuration score for candidate ring topologies. A candidate ring topology is configured based on a computed configuration score surpassing a threshold score. When a failure event is detected, the ring is reevaluated, remapped, and considered for reconfiguration.

Claims (38)

1. A non-transitory computer readable medium having stored thereon a set of instructions which, when stored in memory and executed by a distributed storage system, causes virtual machines in the distributed storage system to perform a set of acts to replicate data, the set of acts comprise:

operating a virtual machine on a computing node of a set of computing nodes in a virtualization system, the virtual machine managing both addition of computing nodes into a ring and replication of data using the computing nodes in the ring; and

implementing the replication of data using the ring, wherein the ring comprises at least:

a first virtual machine on a first computing node of the set of computing nodes, the first virtual machine is in a first availability domain, and the first virtual machine causes storage of a first portion of replicas of data, and

a second virtual machine on a second computing node of the set of computing nodes, the second virtual machine is in a second availability domain, and the second virtual machine causes storage of a second portion of replicas of data.

2. The non-transitory computer readable medium of claim 1 , wherein the ring further comprises a third virtual machine on a third computing node of the set of computing nodes, the third virtual machine is in a third availability domain, and the third virtual machine causes storage of a third portion of replicas of data.

3. The non-transitory computer readable medium of claim 2 , wherein the third virtual machine on the third computing node was added to the ring to replace a failed virtual machine on a failed computing node.

4. The non-transitory computer readable medium of claim 2 , wherein the third virtual machine on the third computing node was added to the ring in response to a topology or configuration change, and the third virtual machine on the third computing node was added to the ring by the virtual machine.

5. The non-transitory computer readable medium of claim 2 , wherein the first portion of replicas replicate data stored in a first different availability domain, the second portion of replicas replicate data stored in a second different availability domain, and the third portion of replicas replicate data stored in a third different availability domain.

6. The non-transitory computer readable medium of claim 1 , wherein the virtual machine and the first virtual machine are the same virtual machine.

7. The non-transitory computer readable medium of claim 1 , wherein the ring further comprises at least two virtual machines on two different computing nodes in the first availability domain and at least two other virtual machines on two other different computing nodes in the second availability domain.

8. The non-transitory computer readable medium of claim 1 , wherein an availability domain is specified for each computing node in the ring based on at least an availability domain identifier.

9. A method for using virtual machines in a distributed storage system to perform a set of acts to replicate data, the set of acts comprising:

operating a virtual machine on a computing node of a set of computing nodes in a virtualization system, the virtual machine managing both addition of nodes into a ring and replication of data using the computing nodes in the ring; and

implementing the replication of data using the ring, wherein the ring comprises at least:

a first virtual machine on a first computing node of the set of computing nodes, the first virtual machine is in a first availability domain, and the first virtual machine causes storage of a first portion of replicas of data, and

a second virtual machine on a second computing node of the set of computing nodes, the second virtual machine is in a second availability domain, and the second virtual machine causes storage of a second portion of replicas of data.

10. The method of claim 9 , wherein the ring further comprises a third virtual machine on a third computing node of the set of computing nodes, the third virtual machine is in a third availability domain, and the third virtual machine causes storage of a third portion of replicas of data.

11. The method of claim 10 , wherein the third virtual machine on the third computing node was added to the ring to replace a failed virtual machine on a failed computing node.

12. The method of claim 10 , wherein the third virtual machine on the third computing node was added to the ring in response to a topology or configuration change, and the third virtual machine on the third computing node was added to the ring by the virtual machine.

13. The method of claim 10 , wherein the first portion of replicas replicate data stored in a first different availability domain, the second portion of replicas replicate data stored in a second different availability domain, and the third portion of replicas replicate data stored in a third different availability domain.

14. The method of claim 9 , wherein the virtual machine and the first virtual machine are the same virtual machine.

15. The method of claim 9 , wherein the ring further comprises at least two virtual machines on two different computing nodes in the first availability domain and at least two other virtual machines on two other different computing nodes in the second availability domain.

16. The method of claim 9 , wherein an availability domain is specified for each computing node in the ring based on at least an availability domain identifier.

17. A system comprising:

a distributed storage system; and

a non-transitory storage medium having stored thereon a sequence of instructions which, when executed by the distributed storage system, causes virtual machines in the distributed storage system to perform a set of acts to replicate data, the set of acts comprising:

operating a virtual machine on a computing node of a set of computing nodes in a virtualization system, the virtual machine managing both addition of nodes into a ring and replication of data using the computing nodes in the ring; and

implementing the replication of data using the ring, wherein the ring comprises at least:

a first virtual machine on a first computing node of the set of computing nodes, the first virtual machine is in a first availability domain, and the first virtual machine causes storage of a first portion of replicas of data, and

a second virtual machine on a second computing node of the set of computing nodes, the second virtual machine is in a second availability domain, and the second virtual machine causes storage of a second portion of replicas of data.

18. The system of claim 17 , wherein the ring further comprises a third virtual machine on a third computing node of the set of computing nodes, the third virtual machine is in a third availability domain, and the third virtual machine causes storage of a third portion of replicas of data.

19. The system of claim 18 , wherein the third virtual machine on the third computing node was added to the ring to replace a failed virtual machine on a failed computing node.

20. The system of claim 18 , wherein the third virtual machine on the third computing node was added to the ring in response to a topology or configuration change, and the third virtual machine on the third computing node was added to the ring by the virtual machine.

21. The system of claim 18 , wherein the first portion of replicas replicate data stored in a first different availability domain, the second portion of replicas replicate data stored in a second different availability domain, and the third portion of replicas replicate data stored in a third different availability domain.

22. The system of claim 17 , wherein the virtual machine and the first virtual machine are the same virtual machine.

23. The system of claim 17 , wherein the ring further comprises at least two virtual machines on two different computing nodes in the first availability domain and at least two other virtual machines on two other different computing nodes in the second availability domain.

24. The system of claim 17 , wherein an availability domain is specified for each computing node in the ring based on at least an availability domain identifier.

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 Apr 6, 2023
From: MAHMOOD, MOHAMMAD; LIAO, ROGER SEAN
To: NUTANIX, INC.
Reel/Frame 063250/0108 →
Continuity (3)
Continuation 16946602 · Jun 29, 2020
Continuation 15230147 · Aug 5, 2016
Related Publication 20230168981A1 · Jun 1, 2023