IP Library Granted Patent US 9,619,490
Granted Patent B2
US 9,619,490 · App. 14/251,165 · Granted Apr 11, 2017

Mechanism for performing lockless rolling upgrade of NoSQL database

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 9,619,490
App. No.
14/251,165
Filed
Apr 11, 2014
Granted
Apr 11, 2017
Kind
B2
Art Unit
2156
USPC
707/609
Abstract

A method for performing lockless lookups during a rolling upgrade of a column family from an old column family version to a new column family version in a NoSQL database.

Claims (40)

1. A method for performing lockless lookups during a rolling upgrade of a column family from an old column family version to a new column family version in a NoSQL database, comprising:

receiving a request to perform a lookup of the column family in the NoSQL database, wherein the NoSQL database is shared by a plurality of controller virtual machines, wherein each controller virtual machine of the plurality of controller virtual machines resides at a node in a networked virtualization environment and provides storage management functionality to a set of user virtual machines residing in its corresponding node, and wherein the NoSQL database is utilized to maintain metadata used by the plurality of controller virtual machines to provide storage management functionality to corresponding sets of user virtual machines;

returning data read from the new column family version if it is determined to be available in the new column family version;

returning data read from the old column family version if it is determined to be unavailable in the new column family version;

attempting to update the new column family version with data read from the old column family version when data read from the old column family version is returned; updating the new column family version with data read from the old column family version when the request is a first lookup request on the column family during the rolling upgrade; and

returning a lookup timeout when the request is subsequent or concurrent with the first lookup request on the column family during the rolling upgrade.

2. The method of claim 1 , further comprising marking the old column family version after the new column family version has been updated with data read from the old column family version.

3. The method of claim 1 , wherein the column family is in a pre-migrating state, a migrating state, a migrated state, or a migration complete state.

4. The method of claim 3 , wherein the column family is in the pre-migrating state when the rolling upgrade of the column family has not yet begun and data accesses directed at the column family are directed at the old column family version.

5. The method of claim 3 , wherein the column family is in the migrating state when the rolling upgrade of the column family has begun but not yet completed.

6. The method of claim 3 , wherein the column family is in the migrated state when the rolling upgrade of the column family has completed but one or more controller VMs utilizing the NoSQL database is not yet notified that the column family has completed migration.

7. The method of claim 3 , wherein the column family is in the migration complete state when the rolling upgrade of the column family has completed and all controller VMs utilizing the NoSQL database are notified that the column family has completed migration.

8. A computer program product embodied on a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a process for performing lockless lookups during a rolling upgrade of a column family from an old column family version to a new column family version in a NoSQL database, the process comprising:

receiving a request to perform a lookup of the column family in the NoSQL database, wherein the NoSQL database is shared by a plurality of controller virtual machines, wherein each controller virtual machine of the plurality of controller virtual machines resides at a node in a networked virtualization environment and provides storage management functionality to a set of user virtual machines residing in its corresponding node, and wherein the NoSQL database is utilized to maintain metadata used by the plurality of controller virtual machines to provide storage management functionality to corresponding sets of user virtual machines;

returning data read from the new column family version if it is determined to be available in the new column family version;

returning data read from the old column family version if it is determined to be unavailable in the new column family version;

attempting to update the new column family version with data read from the old column family version when data read from the old column family version is returned;

updating the new column family version with data read from the old column family version when the request is a first lookup request on the column family during the rolling upgrade; and

returning a lookup timeout when the request is subsequent or concurrent with the first lookup request on the column family during the rolling upgrade.

9. The computer program product of claim 8 , the process further comprising marking the old column family version after the new column family version has been updated with data read from the old column family version.

10. The computer program product of claim 8 , wherein the column family is in a pre-migrating state, a migrating state, a migrated state, or a migration complete state.

11. The computer program product of claim 10 , wherein the column family is in the pre-migrating state when the rolling upgrade of the column family has not yet begun and data accesses directed at the column family are directed at the old column family version.

12. The computer program product of claim 10 , wherein the column family is in the migrating state when the rolling upgrade of the column family has begun but not yet completed.

13. The computer program product of claim 10 , wherein the column family is in the migrated state when the rolling upgrade of the column family has completed but one or more controller VMs utilizing the NoSQL database is not yet notified that the column family has completed migration.

14. The computer program product of claim 10 , wherein the column family is in the migration complete state when the rolling upgrade of the column family has completed and all controller VMs utilizing the NoSQL database are notified that the column family has completed migration.

15. A system for performing lockless lookups during a rolling upgrade of a column family from an old column family version to a new column family version in a NoSQL database, comprising:

a processor;

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

receiving a request to perform a lookup of the column family in the NoSQL database, wherein the NoSQL database is shared by a plurality of controller virtual machines, wherein each controller virtual machine of the plurality of controller virtual machines resides at a node in a networked virtualization environment and provides storage management functionality to a set of user virtual machines residing in its corresponding node, and wherein the NoSQL database is utilized to maintain metadata used by the plurality of controller virtual machines to provide storage management functionality to corresponding sets of user virtual machines;

returning data read from the new column family version if it is determined to be available in the new column family version;

returning data read from the old column family version if it is determined to be unavailable in the new column family version;

attempting to update the new column family version with data read from the old column family version when data read from the old column family version is returned;

updating the new column family version with data read from the old column family version when the request is a first lookup request on the column family during the rolling upgrade; and

returning a lookup timeout when the request is subsequent or concurrent with the first lookup request on the column family during the rolling upgrade.

16. The system of claim 15 , the computer code further implements marking the old column family version after the new column family version has been updated with data read from the old column family version.

17. The system of claim 15 , wherein the column family is in a pre-migrating state, a migrating state, a migrated state, or a migration complete state.

18. The system of claim 17 , wherein the column family is in the pre-migrating state when the rolling upgrade of the column family has not yet begun and data accesses directed at the column family are directed at the old column family version.

19. The system of claim 17 , wherein the column family is in the migrating state when the rolling upgrade of the column family has begun but not yet completed.

20. The system of claim 17 , wherein the column family is in the migrated state when the rolling upgrade of the column family has completed but one or more controller VMs utilizing the NoSQL database is not yet notified that the column family has completed migration.

21. The system of claim 17 , wherein the column family is in the migration complete state when the rolling upgrade of the column family has completed and all controller VMs utilizing the NoSQL database are notified that the column family has completed migration.

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; RAMACHANDRAN, PARTHASARATHY; BHARDWAJ, RISHI
To: NUTANIX, INC.
Reel/Frame 033386/0126 →