Self-management of virtual machines in cloud-based networks
US-8935692-B2 · Jan 13, 2015 · US
US9575808B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9575808-B1 |
| Application number | US-201615291835-A |
| Country | US |
| Kind code | B1 |
| Filing date | Oct 12, 2016 |
| Priority date | Feb 1, 2016 |
| Publication date | Feb 21, 2017 |
| Grant date | Feb 21, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Management of virtual machines can include receiving a request associated with a job that is to be executed using one or more virtual machines from among multiple virtual machines. For each virtual machine of the multiple virtual machines, a respective attribute can be determined. The respective attribute can be determined based on a modulo of an uptime of the respective virtual machine and a predetermined time increment. The particular virtual machine of the multiple virtual machines that is to be used to execute the job can be determined based on the respective attribute associated with the particular virtual machine having a highest value or a lowest value among multiple attributes corresponding to the multiple virtual machines. Based on determining that the particular virtual machine is to be used to execute the job, the particular virtual machine can execute the job.
Opening claim text (preview).
The invention claimed is: 1. A non-transitory computer readable medium comprising program code executable by a processor for causing the processor to: receive a request associated with a job to be executed using one or more virtual machines of a plurality of virtual machines; for each virtual machine of the plurality of virtual machines, determine a respective attribute based on a modulo of an uptime of the respective virtual machine and a predetermined time increment, the uptime being a length of time since the respective virtual machine was created; determine that a particular virtual machine of the plurality of virtual machines is to be used to execute the job based on the respective attribute associated with the particular virtual machine having a highest value or a lowest value among a plurality of attributes corresponding to the plurality of virtual machines; and based on determining that the particular virtual machine is to be used to execute the job, cause the particular virtual machine to execute the job. 2. The non-transitory computer readable medium of claim 1 , further comprising program code that is executable by the processor for causing the processor to generate the plurality of virtual machines by: determining that there are no available virtual machines for executing the job; based on determining that there are no available virtual machines for executing the job, causing a new virtual machine to be provisioned; based on the new virtual machine being provisioned, include the new virtual machine in the plurality of virtual machines; and initialize an attribute associated with the new virtual machine to a default value of zero, the attribute indicating a relationship between the uptime of the new virtual machine and the predetermined time increment. 3. The non-transitory computer readable medium of claim 2 , wherein the particular virtual machine is provisioned by an entity in blocks of time, each block of time being equal to the predetermined time increment. 4. The non-transitory computer readable medium of claim 1 , further comprising program code that is executable by the processor for causing the processor to: determine that a number of virtual machines in the plurality of virtual machines exceeds a threshold number of virtual machines; and based on determining that the number of virtual machines in the plurality of virtual machines exceeds the threshold number of virtual machines: determine that a subset of virtual machines of the plurality of virtual machines are not executing jobs; determine that a virtual machine of the subset of virtual machines has an attribute with the lowest value or the highest value among the subset of virtual machines by comparing the attributes associated with the subset of virtual machines; determine that the lowest value is below a first threshold value that is predefined or that the highest value is above a second threshold value that is predefined; and based on (i) the virtual machine having the lowest value and the lowest value being below the first threshold value, or (ii) the virtual machine having the highest value and the highest value being above the second threshold value, remove the virtual machine from the plurality of virtual machines. 5. The non-transitory computer readable medium of claim 1 , further comprising program code that is executable by the processor for causing the processor to, for each virtual machine of the plurality of virtual machines, determine the respective attribute by: determining a remainder resulting from dividing the uptime of the respective virtual machine by a respective predetermined time increment associated with the respective virtual machine; and multiplying the remainder by the predetermined time increment. 6. The non-transitory computer readable medium of claim 1 , further comprising program code that is executable by the processor for causing the processor to: determine a hardware characteristic or a software characteristic of a server hosting the plurality of virtual machines; and determine the plurality of virtual machines from a larger group of virtual machines based on the hardware characteristic or the software characteristic of the server. 7. The non-transitory computer readable medium of claim 1 , further comprising program code that is executable by the processor for causing the processor to: receive a communication indicating minimum amount of memory required to execute the job; and determine the plurality of virtual machines from a larger group of virtual machines based on the plurality of virtual machines having available the minimum amount of memory required to execute the job. 8. The non-transitory computer readable medium of claim 1 , further comprising program code that is executable by the processor for causing the processor to: determine a priority of the job based on a characteristic of a user account associated with the job; and determine that the particular virtual machine of the plurality of virtual machines is to be used to execute the job based on the priority of the job. 9. The non-transitory computer readable medium of claim 1 , further comprising program code that is executable by the processor for causing the processor to: determine an estimated amount of time that the job will take to execute by analyzing previous jobs submitted by a user; and determine that the particular virtual machine of the plurality of virtual machines is to be used to execute the job based on the estimated amount of time that the job will take to execute. 10. The non-transitory computer readable medium of claim 1 , further comprising program code that is executable by the processor for causing the processor to: determine at least two virtual machines of the plurality of virtual machines to be used to execute respective portions of the job based on the respective attributes associated with the at least two machines; and cause the at least two virtual machines of the plurality of virtual machines to execute the respective portions of the job. 11. A method comprising: receiving, by a processor, a request associated with a job to be executed using one or more virtual machines of a plurality of virtual machines; determining, by the processor, a respective attribute for each virtual machine of the plurality of virtual machines based on a modulo of an uptime of the respective virtual machine and a predetermined time increment, the uptime being a length of time since the respective virtual machine was created; determining, by the processor, that a particular virtual machine of the plurality of virtual machines is to be used to execute the job based on the respective attribute associated with the particular virtual machine having a highest value or a lowest value among a plurality of attributes corresponding to the plurality of virtual machines; and based on determining that the particular virtual machine is to be used to execute the job, causing, by the processor, the particular virtual machine to execute the job. 12. The method of claim 11 , further comprising generating the plurality of virtual machines by: determining that there are no available virtual machines for executing the job; based on determining that there are no available virtual machines for executing the job, causing a new virtual machine to be provisioned; based on the new virtual machine being provisioned, including the new virtual machine in the plurality of virtual machines; and initializing an attribute associated with the new virtual machine to a default value, the attribute indicating a relationship between the uptime of the new virtual machine and the predetermined time in
considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups) · CPC title
Hypervisors; Virtual machine monitors · CPC title
considering hardware capabilities · CPC title
Network integration; Enabling network access in virtual machine instances · CPC title
Hypervisor-specific management and integration aspects · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.