IP Library Patent Application 17964955
Patent Application
App. No. 17/964,955

PREVENTING UNNECESSARY REGISTRATION OF VIRTUAL MACHINES

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 None
App. No.
17/964,955
Abstract

Systems and methods are provided for efficiently registering cloned VMs while preventing unnecessary subsequent registrations. Two independent threads can execute on a cloned VM and control different variables indicating whether registration is needed or has already been performed. A first thread can set a first variable based on an internal identifier of the cloned VM relative to the parent VM. It can also check a second variable, set by a second thread, based on an external identifier of the cloned VM not being updated at a backend cloud service. It can then set a third variable indicating whether registration has been triggered or not, based on the other variables. To avoid duplication, the second thread sets the second variable based on both the external identifier as well as a status of the first variable. The variables can be atomic variables to avoid multi-thread interference and undesirable thread locks.

Claims (55)

1 . A method for registering a cloned virtual machine (“VM”), comprising:

instantiating the cloned VM from a parent VM;

initializing two atomic variables that can be read and modified by a thread executing within the cloned VM, the variables comprising:

a first variable associated with an internal identifier of the cloned VM relative to an internal identifier of the parent VM; and

a second variable associated with an external identifier of the cloned VM;

in an instance where a first thread detects a change of the internal identifier of the cloned VM:

setting the first variable to indicate that registration was triggered based on the internal identifier; and

registering the cloned VM with the backend system; and

in an instance where a first thread detects no change of the internal identifier of the cloned VM:

setting the first variable to indicate that registration was not triggered based on the internal identifier;

checking the second variable to determine whether the external identifier of the cloned VM has changed; and

if the second variable indicates that the external identifier has changed, registering the cloned VM with the backend system.

2 . The method of claim 1 , wherein the second variable is set by a second thread executing within the cloned VM, based on the second thread determining that the external identifier of the cloned VM has changed.

3 . The method of claim 2 , wherein the second thread checks the first variable before setting the second variable.

4 . The method of claim 3 , wherein in an instance where the first variable indicates that registration was triggered based on the internal identifier, setting the second variable to indicate that the external identifier has not been changed.

5 . The method of claim 3 , wherein checking the first variable comprises asserting a signal on a memory bus without the first or second threads being locked.

6 . The method of claim 1 , wherein the internal identifier is at least one of a basic input/output system (“BIOS”) universally unique identifier (“UUID”) and a media access control (“MAC”) address.

7 . The method of claim 1 , wherein the external identity is a VM universally unique identifier (“UUID”).

8 . A non-transitory, computer-readable medium containing instructions that, when executed by a hardware-based processor, cause the processor to perform stages for registering a cloned virtual machine (“VM”), the stages comprising:

instantiating the cloned VM from a parent VM;

initializing two atomic variables that can be read and modified by a thread executing within the cloned VM, the variables comprising:

a first variable associated with an internal identifier of the cloned VM relative to an internal identifier of the parent VM; and

a second variable associated with an external identifier of the cloned VM;

in an instance where a first thread detects a change of the internal identifier of the cloned VM:

setting the first variable to indicate that registration was triggered based on the internal identifier; and

registering the cloned VM with the backend system; and

in an instance where a first thread detects no change of the internal identifier of the cloned VM:

setting the first variable to indicate that registration was not triggered based on the internal identifier;

checking the second variable to determine whether the external identifier of the cloned VM has changed; and

if the second variable indicates that the external identifier has changed, registering the cloned VM with the backend system.

9 . The non-transitory, computer-readable medium of claim 8 , wherein the second variable is set by a second thread executing within the cloned VM, based on the second thread determining that the external identifier of the cloned VM has changed.

10 . The non-transitory, computer-readable medium of claim 9 , wherein the second thread checks the first variable before setting the second variable.

11 . The non-transitory, computer-readable medium of claim 10 , wherein in an instance where the first variable indicates that registration was triggered based on the internal identifier, setting the second variable to indicate that the external identifier has not been changed.

12 . The non-transitory, computer-readable medium of claim 11 , wherein checking the first variable comprises asserting a signal on a memory bus without the first or second threads being locked.

13 . The non-transitory, computer-readable medium of claim 8 , wherein the internal identifier is at least one of a basic input/output system (“BIOS”) universally unique identifier (“UM”) and a media access control (“MAC”) address.

14 . The non-transitory, computer-readable medium of claim 8 , wherein the external identity is a VM universally unique identifier (“UM”).

15 . A system for registering a cloned virtual machine (“VM”), comprising:

a memory storage including a non-transitory, computer-readable medium comprising instructions; and

a computing device including a hardware-based processor that executes the instructions to carry out stages comprising:

instantiating the cloned VM from a parent VM;

initializing two atomic variables that can be read and modified by a thread executing within the cloned VM, the variables comprising:

a first variable associated with an internal identifier of the cloned VM relative to an internal identifier of the parent VM; and

a second variable associated with an external identifier of the cloned VM;

in an instance where a first thread detects a change of the internal identifier of the cloned VM:

setting the first variable to indicate that registration was triggered based on the internal identifier; and

registering the cloned VM with the backend system; and

in an instance where a first thread detects no change of the internal identifier of the cloned VM:

setting the first variable to indicate that registration was not triggered based on the internal identifier;

checking the second variable to determine whether the external identifier of the cloned VM has changed; and

if the second variable indicates that the external identifier has changed, registering the cloned VM with the backend system.

16 . The system of claim 15 , wherein the second variable is set by a second thread executing within the cloned VM, based on the second thread determining that the external identifier of the cloned VM has changed.

17 . The system of claim 16 , wherein the second thread checks the first variable before setting the second variable.

18 . The system of claim 17 , wherein in an instance where the first variable indicates that registration was triggered based on the internal identifier, setting the second variable to indicate that the external identifier has not been changed.

19 . The system of claim 17 , wherein checking the first variable comprises asserting a signal on a memory bus without the first or second threads being locked.

20 . The system of claim 15 , wherein the internal identifier is at least one of a basic input/output system (“BIOS”) universally unique identifier (“UUID”) and a media access control (“MAC”) address.

Assignments (2)
CHANGE OF NAME Recorded May 8, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067355/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2022
From: NANIVADEKAR, MANDAR; SOMAN, LEENA SHUKLENDU
To: VMWARE, INC.
Reel/Frame 061404/0353 →