IP Library Granted Patent US 10,019,321
Granted Patent B1
US 10,019,321 · App. 14/145,290 · Granted Jul 10, 2018

Unique identifiers for data replication, migration, failover operations and failback operations

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 10,019,321
App. No.
14/145,290
Filed
Dec 31, 2013
Granted
Jul 10, 2018
Kind
B1
Art Unit
2161
USPC
707/634
Abstract

A computer implemented method implemented with a processor for assigning a unique identifier for a data item initially deployed at a cluster of a networked environment that includes determining a unique cluster identifier for the cluster of the networked environment, atomically modifying a local counter value at the cluster of the networked environment and appending the unique cluster identifier to the atomically modified local counter value at the cluster of the networked environment to form a unique ID for the data item.

Claims (34)

1. A computer implemented method implemented with a processor for assigning a unique identifier for a data item initially deployed at a cluster of nodes of a networked environment, comprising:

determining a unique cluster identifier for a first cluster of a plurality of clusters interconnected over network connections, clusters of the plurality of clusters comprising pluralities of nodes in networked environments, wherein the unique cluster identifier uniquely identifies the first cluster, individual nodes of the pluralities of nodes comprise both hardware and software, the hardware comprising a processor, a memory, and one or more storage devices, the software comprising a hypervisor and a controller virtual machine above the hypervisor, and the controller virtual machine manages at least some of the one or more storage devices as a single logical collection of storage devices comprising a storage pool;

atomically modifying a local counter value at the first cluster of the networked environment, the local counter value comprising a cluster level counter shared by a plurality of nodes that make up the first cluster, wherein the local counter value is atomically modified when a data item is initially deployed at any node of the plurality of nodes that make up the first cluster, the data item being stored on a first storage pool of the first cluster;

forming a unique ID for the data item by appending the unique cluster identifier to the atomically modified local counter value, wherein the data item is immutable after the unique ID for the data item has been formed; and

performing replication or migration of the data item to a second cluster of the plurality of clusters upon determining that the unique ID for the data item is not in a list of unique IDs residing at the second cluster, the data item being replicated at a second storage pool of the second cluster, wherein any identical instance of the data item in the networked environment is associated with the unique ID and a modified instance of the data item is associated with a different unique ID.

2. The method of claim 1 , wherein the unique cluster identifier for the first cluster of the networked environment is determined using a global counter for the networked environment where a value of the global counter is atomically modified each time a new cluster is introduced to the networked environment.

3. The method of claim 1 , wherein the unique cluster identifier is a 64-bit value.

4. The method of claim 1 , wherein the local counter value is a 64-bit value.

5. The method of claim 1 , wherein the replication or migration is performed for a failover operation.

6. The method of claim 5 , wherein the first cluster is a failing cluster and the second cluster is a substitute cluster.

7. The method of claim 1 , wherein the replication or migration is performed for a failback operation.

8. The method of claim 7 , wherein the first cluster is a substitute cluster and the second cluster is a recovered cluster.

9. A computer program product comprising a non-transitory computer usable medium having executable code to execute a method for assigning a unique identifier for a data item initially deployed at a cluster of nodes of a networked environment, the method comprising:

determining a unique cluster identifier for a first cluster of a plurality of clusters interconnected over network connections, clusters of the plurality of clusters comprising pluralities of nodes in networked environments, wherein the unique cluster identifier uniquely identifies the first cluster, individual nodes of the pluralities of nodes comprise both hardware and software, the hardware comprising a processor, a memory, and one or more storage devices, the software comprising a hypervisor and a controller virtual machine above the hypervisor, and the controller virtual machine manages at least some of the one or more storage devices as a single logical collection of storage devices comprising a storage pool;

atomically modifying a local counter value at the first cluster of the networked environment, the local counter value comprising a cluster level counter shared by a plurality of nodes that make up the first cluster, wherein the local counter value is atomically modified when a data item is initially deployed at any node of the plurality of nodes that make up the first cluster, the data item being stored on a first storage pool of the first cluster;

forming a unique ID for the data item by appending the unique cluster identifier to the atomically modified local counter value, wherein the data item is immutable after the unique ID for the data item has been formed; and

performing replication or migration of the data item to a second cluster of the plurality of clusters upon determining that the unique ID for the data item is not in a list of unique IDs residing at the second cluster, the data item being replicated at a second storage pool of the second cluster, wherein any identical instance of the data item in the networked environment is associated with the unique ID and a modified instance of the data item is associated with a different unique ID.

10. The computer program product of claim 9 , wherein the replication or migration is performed for a failover operation, the first cluster is a failing cluster, and the second cluster is a substitute cluster.

11. The computer program product of claim 9 , wherein the replication or migration is performed for a failback operation, the first cluster is a substitute cluster, and the second cluster is a recovered cluster.

12. The computer program product of claim 9 , wherein the unique cluster identifier for the first cluster of the networked environment where the data item is deployed is determined using a global counter for the networked environment, such that a value of the global counter is atomically modified each time a new cluster is introduced to the networked environment.

13. The computer program product of claim 9 , wherein the unique cluster identifier is a 64-bit value.

14. The computer program product of claim 9 , wherein the local counter value is a 64-bit value.

15. A system for assigning a unique identifier for a data item initially deployed at a cluster of nodes of a networked environment, comprising:

a processor;

a memory comprising computer code executed using the processor, in which the computer code, when executed by the processor, implements:

determining a unique cluster identifier for a first cluster of a plurality of clusters interconnected over network connections, clusters of the plurality of clusters comprising pluralities of nodes in networked environments, wherein the unique cluster identifier uniquely identifies the first cluster, individual nodes of the pluralities of nodes comprise both hardware and software, the hardware comprising a processor, a memory, and one or more storage devices, the software comprising a hypervisor and a controller virtual machine above the hypervisor, and the controller virtual machine manages at least some of the one or more storage devices as a single logical collection of storage devices comprising a storage pool;

atomically modifying a local counter value at the first cluster of the networked environment, the local counter value comprising a cluster level counter shared by a plurality of nodes that make up the first cluster, wherein the local counter value is atomically modified when a data item is initially deployed at any node of the plurality of nodes that make up the first cluster, the data item being stored on a first storage pool of the first cluster;

forming a unique ID for the data item by appending the unique cluster identifier to the atomically modified local counter value, wherein the data item is immutable after the unique ID for the data item has been formed; and

performing replication or migration of the data item to a second cluster of the plurality of clusters upon determining that the unique ID for the data item is not in a list of unique IDs residing at the second cluster, the data item being replicated at a second storage pool of the second cluster, wherein any identical instance of the data item in the networked environment is associated with the unique ID and a modified instance of the data item is associated with a different unique ID.

16. The system of claim 15 , wherein:

the unique cluster identifier for the first cluster of the networked environment is determined using a global counter for the networked environment where a value of the global counter is atomically modified each time a new cluster is introduced to the networked environment,

the unique cluster identifier is a 64-bit value and the local counter value is a 64-bit value.

17. The system of claim 15 , wherein the replication or migration is performed for a failover operation, the first cluster is a failing cluster and the second cluster is a substitute cluster.

18. The system of claim 15 , wherein the replication or migration is performed for a failback operation, the first cluster is a substitute cluster, and the second cluster is a recovered cluster.

Assignments (4)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
RELEASE OF SECURITY INTEREST Recorded Sep 28, 2016
From: GOLDMAN SACHS SPECIALTY LENDING GROUP, L.P., AS AGENT
To: NUTANIX, INC.
Reel/Frame 040168/0586 →
SECURITY INTEREST Recorded Apr 15, 2016
From: NUTANIX, INC.
To: GOLDMAN SACHS SPECIALTY LENDING GROUP, L.P., AS AGENT
Reel/Frame 038440/0712 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2014
From: ARON, MOHIT; BYRNE, BRIAN
To: NUTANIX, INC.
Reel/Frame 033386/0332 →
Cited By (1)
US 12,613,722