Breadth-first resource allocation system and methods
First Claim
Patent Images
1. A computer-implemented method, said method comprising:
- receiving a request to allocate CPU slots, said request associated with one or more instances of an application;
identifying a resource group comprising at least two servers having idle CPU slots;
determining a value representative of the number of running instances of the application on each server in the resource group;
determining a value representative of the number of idle CPU slots on each server in the resource group;
sorting servers in the resource group in descending order, excluding servers with no idle CPU slots, by the sum of their values representative of the number of running instances of the application and the number of idle CPU slots to create a list of eligible servers; and
allocating one CPU slot at a time from the list of eligible servers sorted in descending order in a round-robin fashion.
1 Assignment
0 Petitions
Accused Products
Abstract
A computing environment adapted with a resource allocation policy, the resource allocation policy being configured to evenly distribute application instances to as many servers as possible.
132 Citations
16 Claims
-
1. A computer-implemented method, said method comprising:
-
receiving a request to allocate CPU slots, said request associated with one or more instances of an application; identifying a resource group comprising at least two servers having idle CPU slots; determining a value representative of the number of running instances of the application on each server in the resource group; determining a value representative of the number of idle CPU slots on each server in the resource group; sorting servers in the resource group in descending order, excluding servers with no idle CPU slots, by the sum of their values representative of the number of running instances of the application and the number of idle CPU slots to create a list of eligible servers; and allocating one CPU slot at a time from the list of eligible servers sorted in descending order in a round-robin fashion. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer system, comprising:
-
a memory; and a processing device communicatively coupled to said memory, said processing device configured to; identify a resource group comprising at least two servers having idle CPU slots; determine a value representative of the number of running instances of the application on each server in the resource group; determine a value representative of the number of idle CPU slots on each server in the resource group; sort servers in the resource group in descending order, excluding servers with no idle CPU slots, by the sum of their values representative of the number of running instances of the application and the number of idle CPU slots to create a list of eligible servers; and allocate one CPU slot at a time from the list of eligible servers sorted in descending order in a round-robin fashion.
-
-
8. A non-transitory computer-readable storage medium programmed to include instructions that, when executed by a processing device, cause the processing device to perform a method, said method comprising:
-
identifying a resource group comprising at least two servers having idle CPU slots; determining a value representative of the number of running instances of the application on each server in the resource group; determining a value representative of the number of idle CPU slots on each server in the resource group; sorting servers in the resource group in descending order, excluding servers with no idle CPU slots, by the sum of their values representative of the number of running instances of the application and the number of idle CPU slots to create a list of eligible servers; and allocating one CPU slot at a time from the list of eligible servers sorted in descending order in a round-robin fashion.
-
-
9. A computer-implemented method, said method comprising:
-
receiving a request to release CPU slots, said request associated with one or more instances of an application; identifying a resource group comprising servers having CPU slots allocated to one or more instances of the application; determining a value representative of the number of running instances of the application on each server in the resource group; sorting servers in the resource group in descending order, excluding servers with no instances of the application, by their values representative of the number of running instances of the application to create a list of eligible servers; and releasing one CPU slot at a time from the list of eligible servers sorted in descending order. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A computer system, comprising:
-
a memory; and a processing device communicatively coupled to said memory, said processing device configured to; receive a request to release CPU slots, said request associated with one or more instances of an application; identify a resource group comprising servers having CPU slots allocated to one or more instances of the application; determine a value representative of the number of running instances of the application on each server in the resource group; sort servers in the resource group in descending order, excluding servers with no instances of the application, by their values representative of the number of running instances of the application to create a list of eligible servers; and release one CPU slot at a time from the list of eligible servers sorted in descending order.
-
-
16. A non-transitory computer-readable storage medium programmed to include instructions that, when executed by a processing device, cause the processing device to perform a method, said method comprising:
-
receiving a request to release CPU slots, said request associated with one or more instances of an application; identifying a resource group comprising servers having CPU slots allocated to one or more instances of the application; determining a value representative of the number of running instances of the application on each server in the resource group; sorting servers in the resource group in descending order, excluding servers with no instances of the application, by their values representative of the number of running instances of the application to create a list of eligible servers; and releasing one CPU slot at a time from the list of eligible servers sorted in descending order.
-
Specification