Systems and methods for assigning code lines to clusters with storage and other constraints
First Claim
1. A method in a host organization, the method comprising:
- receiving as input, a plurality of code lines for test within the host organization;
determining available resource capacity for each of a plurality of clusters within the host organization;
determining required resource capacity for each of the plurality of code lines for test within the host organization;
sorting the plurality of clusters according to the determined available resource capacity for each, wherein the plurality of clusters are ranked from the lowest available resource capacity to the greatest available resource capacity;
sorting the plurality of code lines on a per-code line basis according to the determined required resource capacity for each of the plurality of code lines, wherein the plurality of code lines are ranked from the least resource intensive to the most resource intensive; and
allocating the plurality of code lines amongst the plurality of clusters based on the sorting of the plurality of clusters and based further on the sorting of the plurality of code lines, wherein the plurality of code lines are allocated to available clusters by allocating first, code lines from among the plurality of code lines, having a least or lowest requisite capacity to a cluster having the lowest available resource capacity.
1 Assignment
0 Petitions
Accused Products
Abstract
In accordance with disclosed embodiments, there are provided methods, systems, and apparatuses for assigning code lines to clusters with storage and other constraints in an on-demand service environment including, for example, receiving as input, a plurality of code lines for test within a host organization; determining available resource capacity for each of a plurality of clusters within the host organization; determining required resource capacity for each of the plurality of code lines for test within the host organization; sorting the plurality of clusters according to the determined available resource capacity for each; sorting the plurality of code lines according to the determined required resource capacity for each; and allocating the plurality of code lines amongst the plurality of clusters based on the sorting of the plurality of clusters and based further on the sorting of the plurality of code lines. Other related embodiments are disclosed.
126 Citations
29 Claims
-
1. A method in a host organization, the method comprising:
-
receiving as input, a plurality of code lines for test within the host organization; determining available resource capacity for each of a plurality of clusters within the host organization; determining required resource capacity for each of the plurality of code lines for test within the host organization; sorting the plurality of clusters according to the determined available resource capacity for each, wherein the plurality of clusters are ranked from the lowest available resource capacity to the greatest available resource capacity; sorting the plurality of code lines on a per-code line basis according to the determined required resource capacity for each of the plurality of code lines, wherein the plurality of code lines are ranked from the least resource intensive to the most resource intensive; and allocating the plurality of code lines amongst the plurality of clusters based on the sorting of the plurality of clusters and based further on the sorting of the plurality of code lines, wherein the plurality of code lines are allocated to available clusters by allocating first, code lines from among the plurality of code lines, having a least or lowest requisite capacity to a cluster having the lowest available resource capacity. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. Non-transitory computer readable storage medium having instructions stored thereon that, when executed by a processor in a host organization, the instructions cause the host organization to perform operations comprising:
-
receiving as input, a plurality of code lines for test within the host organization; determining available resource capacity for each of a plurality of clusters within the host organization; determining required resource capacity for each of the plurality of code lines for test within the host organization; sorting the plurality of clusters according to the determined available resource capacity for each, wherein the plurality of clusters are ranked from the lowest available resource capacity to the greatest available resource capacity; sorting the plurality of code lines on a per-code line basis according to the determined required resource capacity for each of the plurality of code lines, wherein the plurality of code lines are ranked from the least resource intensive to the most resource intensive; and
according to the determined required resource capacity for each; andallocating the plurality of code lines amongst the plurality of clusters based on the sorting of the plurality of clusters and based further on the sorting of the plurality of code lines, wherein the plurality of code lines are allocated to available clusters by allocating first, code lines from among the plurality of code lines, having a least or lowest requisite capacity to a cluster having the lowest available resource capacity. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A system to operate within a host organization, the system comprising:
-
a processor to execute instructions;
an input interface to receive a plurality of code lines for test within the host organization;
a test analyzer to;(i) determine available resource capacity for each of a plurality of clusters within the host organization, and (ii) determine required resource capacity for each of the plurality of code lines for test within the host organization; a mapping engine to; (i) sort the plurality of clusters according to the determined available resource capacity for each wherein the plurality of clusters are ranked from the lowest available resource capacity to the greatest available resource capacity, (ii) sort the plurality of code lines on a per-code line basis according to the requisite capacity for each of the plurality of code lines, wherein the plurality of code lines are ranked from the least resource intensive to the most resource intensive; and (iii) update an allocation map according to the sort of the plurality of clusters and further according to the sort of the plurality of code lines; and an allocation engine to allocate the plurality of code lines amongst the plurality of clusters based on the sorting of the plurality of clusters and based further on the sorting of the plurality of code lines, wherein the plurality of code lines are allocated to available clusters by allocating first, code lines from among the plurality of code lines, having a least or lowest requisite capacity to a cluster having the lowest available resource capacity. - View Dependent Claims (26, 27, 28)
-
-
29. A method in a host organization, the method comprising:
-
receiving as input, a plurality of code lines for test within the host organization; determining available resource capacity for each of a plurality of clusters within the host organization; determining required resource capacity for each of the plurality of code lines for test within the host organization; sorting the plurality of clusters according to the determined available resource capacity for each, wherein sorting the plurality of clusters according to the determined available resource capacity for each comprises sorting the plurality of clusters according to the cluster having the lowest available resource capacity to the cluster having the greatest available resource capacity and updating an allocation map with the sorting of the plurality of clusters; sorting the plurality of code lines according to the determined required resource capacity for each, wherein sorting the plurality of code lines according to the determined required resource capacity for each comprises sorting the plurality of code lines according to the code line having the lowest required resource capacity to the code line having the greatest required resource capacity and updating the allocation map with the sorting of the plurality of code lines; and allocating the plurality of code lines amongst the plurality of clusters based on the sorting of the plurality of clusters and based further on the sorting of the plurality of code lines, wherein allocating the plurality of code lines amongst the plurality of clusters comprises allocating in accordance with the following allocation rules; (i) select the code line having the lowest required resource capacity; (ii) if the selected code line having the lowest required resource capacity has a required resource capacity of zero, then select the code line having the next lowest and non-zero required resource capacity as the selected code line; (iii) select the cluster having the lowest available resource capacity; (iv) if the selected the cluster having the lowest available resource capacity has an available resource capacity of zero, then select the cluster having the next lowest and non-zero available resource capacity as the selected cluster; (v) if the available resource capacity of the selected cluster is less than or equal to the required resource capacity of the selected code line then; (a) update the required resource capacity of the selected code line in the allocation map by subtracting the available resource capacity for the selected cluster from the required resource capacity for the selected code line, (b) set to zero in the allocation map, the available resource capacity for the selected cluster, and (c) assign the selected code line to the selected cluster in the allocation map; (vi) if the available resource capacity of the selected cluster is greater than or equal to the required resource capacity of the selected code line then; (a) update the available resource capacity of the selected cluster in the allocation map by subtracting the required resource capacity of the selected code line from the available resource capacity of the selected cluster, (b) set to zero in the allocation map, the required resource capacity of the selected code line, and (c) assign the selected code line to the selected cluster in the allocation map; (vii) if a number of code lines assigned to the selected cluster is equal to greater than a pre-defined allowed number of code lines for the selected cluster, then; (a) set to zero in the allocation map, the available resource capacity for the selected cluster; (viii) if the required resource capacity of the selected code line is greater than zero, then; (a) trigger an indication that the plurality of clusters is insufficient to allocate all of the plurality of code lines for test, and (b) exit; (ix) repeat allocating according to the rules (i) through (viii) if the required resource capacity for any of the plurality of code lines is greater than zero in the allocation map.
-
Specification