Augmented allocation of virtual machines for application
First Claim
1. A computer system, comprising:
- one or more processors; and
one or more computer-readable hardware storage devices having stored thereon computer-executable instructions that are executable by the one or more processors to cause the computing system to start a plurality of virtual machines corresponding to an application, the computer-executable instructions including instructions that are executable to cause the computing system to perform at least the following;
access a request to allocate a requested number of virtual machines to an application, for executing a plurality of code portions of the application across the requested virtual machines;
determine that different sets of virtual machines are to be bound to different code portions of the application corresponding to different roles in the applications, including at least a first role having a first, higher, level of criticality to application functioning, and a second role having a second, lower, level of criticality to application functioning;
in response to the request, determine a number of virtual machines to allocate to the application, while taking into account the different roles, the number including the sum of;
a first requested number of virtual machines for the first role, plus a first additional number of virtual machines for the first role, wherein the first additional number is determined based on applying a first, higher, ratio identified based on the first, higher, level of criticality and;
a second requested number of virtual machines for the second role, plus a second additional number of virtual machines for the second role, wherein the second additional number is determined based on applying a second, lower, ratio identified based on the second, lower, level of criticality;
in response to the request, and prior to binding any code of the application to any of the requested virtual machines, allocate the determined number of virtual machines to the application, including causing a particular number of virtual machines to initiate start up across a set of one or more host computing systems, such that a sum of the particular number of virtual machines and any already started up virtual machines at the set of one or more host computing systems that are available for allocation to the application equals the determined number of virtual machines; and
after causing the particular number of virtual machines to initiate start up, and before all of the particular number of virtual machines have completed starting up, bind at least one of the one or more code portions to one or more of the allocated virtual machines that have completed starting up.
2 Assignments
0 Petitions
Accused Products
Abstract
The starting up of an application involving multiple virtual machines by overallocating virtual machines. In response to a request to allocate a certain number of virtual machines corresponding to the application, an augmented number of virtual machines is determined to be allocated in response to the request. The augmented number includes both the initially requested number of virtual machines in addition to a surplus number of virtual machines. The virtual machines are then initiated to start up if they are not already started up. Before all of the virtual machines are started up, code is bound to the virtual machines. Thus, because more virtual machines were initiated startup than are required for the application, the code may be bound to some of the virtual machines in the application before all of the virtual machine have started up.
55 Citations
19 Claims
-
1. A computer system, comprising:
-
one or more processors; and one or more computer-readable hardware storage devices having stored thereon computer-executable instructions that are executable by the one or more processors to cause the computing system to start a plurality of virtual machines corresponding to an application, the computer-executable instructions including instructions that are executable to cause the computing system to perform at least the following; access a request to allocate a requested number of virtual machines to an application, for executing a plurality of code portions of the application across the requested virtual machines; determine that different sets of virtual machines are to be bound to different code portions of the application corresponding to different roles in the applications, including at least a first role having a first, higher, level of criticality to application functioning, and a second role having a second, lower, level of criticality to application functioning; in response to the request, determine a number of virtual machines to allocate to the application, while taking into account the different roles, the number including the sum of; a first requested number of virtual machines for the first role, plus a first additional number of virtual machines for the first role, wherein the first additional number is determined based on applying a first, higher, ratio identified based on the first, higher, level of criticality and; a second requested number of virtual machines for the second role, plus a second additional number of virtual machines for the second role, wherein the second additional number is determined based on applying a second, lower, ratio identified based on the second, lower, level of criticality; in response to the request, and prior to binding any code of the application to any of the requested virtual machines, allocate the determined number of virtual machines to the application, including causing a particular number of virtual machines to initiate start up across a set of one or more host computing systems, such that a sum of the particular number of virtual machines and any already started up virtual machines at the set of one or more host computing systems that are available for allocation to the application equals the determined number of virtual machines; and after causing the particular number of virtual machines to initiate start up, and before all of the particular number of virtual machines have completed starting up, bind at least one of the one or more code portions to one or more of the allocated virtual machines that have completed starting up. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method, implemented at a computer system that includes one or more processors, of starting a plurality of virtual machines corresponding to an application, the method comprising:
-
accessing a request to allocate a requested number of virtual machines to an application, for executing a plurality of code portions of the application across the requested virtual machines; determining that different sets of virtual machines are to be bound to different code portions of the application corresponding to different roles of the application, including at least a first role having a first, higher, level of criticality to application functioning, and a second role having a second, lower, level of criticality to make the application functioning; in response to the request, determining a number of virtual machines to allocate to the application, while taking into account the different roles, the number including the sum of; a first requested number of virtual machines for the first role, plus a first additional number of virtual machines for the first role, the first additional number being determined based on applying a first, higher, ratio identified based on the first, higher, level of criticality; and a second requested number of virtual machines for the second role, plus a second additional number of virtual machines for the second role, the second additional number being determined based on applying a second, lower, ratio identified based on the second, lower, level of criticality; in response to the request, and prior to binding any code of the application to any of the requested virtual machines, allocating the determined number of virtual machines to the application, including causing the augmented number of virtual machines to initiate start up across a set of one or more host computing systems; and after causing the determined number of virtual machines to initiate start up, and before all of the determined number of virtual machines have competed starting up, binding at least one of the one or more code portions to one or more of the allocated virtual machines that have completed starting up. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computer program product comprising one or more computer-readable hardware storage devices having stored thereon computer-executable instructions that are executable by one or more hardware processors of a computer system to cause the computer system to start a plurality of virtual machines corresponding to an application, the computer-executable instructions including instructions that are executable to cause the computing system to perform at least the following:
-
receive a request to allocate a requested number of virtual machines to an application, for executing a plurality of code portions of the application across the requested virtual machines; determine that different sets of virtual machines are to be bound to different code portions of the application corresponding to different roles of the application, including at least a first role having a first, higher, level of criticality to application functioning, and a second role having a second, lower, level of criticality to application functioning; based on attributes of the application, calculate a number of virtual machines to allocate to the application, while taking into account the first and second roles, the number including the sum of; a first requested number of virtual machines for the first role, plus a first additional number of virtual machines for the first role, wherein the first additional number is determined based on applying a first, higher, ratio identified based on the first, higher, level of criticality; and a second requested number of virtual machines for the second role, plus a second additional number of virtual machines for the second role, wherein the second additional number is determined based on applying a second, lower, ratio identified based on the second, lower, level of criticality; prior to binding any code of the application to any of the requested virtual machines, allocating the calculated number of virtual machines to the application, including causing the calculated number of virtual machines to initiate start up across a set of one or more host computing systems; and after causing the calculated number of virtual machines to initiate start up, and before all of the calculated number of virtual machines have competed starting up, binding at least one of the one or more code portions to one or more of the allocated virtual machines that have completed starting up. - View Dependent Claims (18, 19)
-
Specification