Scheduling jobs within a cloud computing environment
First Claim
1. A method for prioritizing jobs within a cloud computing environment, comprising:
- determining, using at least one computing device, a processing capacity of the cloud computing environment;
determining, using the at least one computing device, an income, a processing need, a set of service level agreement (SLA) terms for each of a plurality of jobs;
prioritizing, using the at least one computing device, a set of jobs from the plurality of jobs based on their respective income, processing need, and SLA terms, wherein the prioritizing ensures that the set of SLA terms are met while maximizing the income and without exceeding the determined processing capacity;
scheduling, using the at least one computing device, the prioritized set of jobs from the plurality of jobs; and
scheduling, using the at least one computing device, at least one job having lowest expected processing needs of the plurality of jobs other than the prioritized set of jobs.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide an approach to prioritize jobs (e.g., within a cloud computing environment) so as to maximize positive financial impacts (or to minimize negative financial impacts) for cloud service providers, while not exceeding processing capacity or failing to meet terms of applicable Service Level Agreements (SLAs). Specifically, under the present invention a respective income (i.e., a cost to the customer), a processing need, and set of SLA terms (e.g., predetermined priorities, time constraints, etc.) will be determined for each of a plurality of jobs to be performed. The jobs will then be prioritized in a way that: maximizes cumulative/collective income; stays within the total processing capacity of the cloud computing environment; and meets the SLA terms.
34 Citations
20 Claims
-
1. A method for prioritizing jobs within a cloud computing environment, comprising:
-
determining, using at least one computing device, a processing capacity of the cloud computing environment; determining, using the at least one computing device, an income, a processing need, a set of service level agreement (SLA) terms for each of a plurality of jobs; prioritizing, using the at least one computing device, a set of jobs from the plurality of jobs based on their respective income, processing need, and SLA terms, wherein the prioritizing ensures that the set of SLA terms are met while maximizing the income and without exceeding the determined processing capacity; scheduling, using the at least one computing device, the prioritized set of jobs from the plurality of jobs; and scheduling, using the at least one computing device, at least one job having lowest expected processing needs of the plurality of jobs other than the prioritized set of jobs. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for prioritizing jobs within a cloud computing environment, comprising:
-
a bus; a processor coupled to the bus; and a memory medium coupled to the bus, the memory medium comprising instructions to; determine a processing capacity of the cloud computing environment; determine an income, a processing need, a set of service level agreement (SLA) terms for each of a plurality of jobs; prioritize the plurality of jobs based on their respective income, processing need, and SLA terms, wherein the prioritizing ensures that the set of SLA terms are met while maximizing the income and without exceeding the determined processing capacity; schedule the prioritized set of jobs from the plurality of jobs; and schedule at least one job presumed to fail based on the determined processing capacity, the at least one job being from the plurality of jobs other than the prioritized set of jobs. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer program product for prioritizing jobs within a cloud computing environment, the computer program product comprising a computer readable storage medium, and program instructions stored on the computer readable storage medium, to:
-
determine a processing capacity of the cloud computing environment; determine an income, a processing need, a set of service level agreement (SLA) terms for each of a plurality of jobs; prioritize the plurality of jobs based on their respective income, processing need, and SLA terms, wherein the prioritizing ensures that the set of SLA terms are met while maximizing the income and without exceeding the determined processing capacity; schedule the prioritized set of jobs from the plurality of jobs; schedule at least one job having a highest income of the plurality of jobs other than the prioritized set of jobs. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A method for deploying a system for prioritizing jobs within a cloud computing environment, comprising:
-
determining, via a computer infrastructure, a processing capacity of the cloud computing environment; determining, via the computer infrastructure, an income, a processing need, a set of service level agreement (SLA) terms for each of a plurality of jobs; prioritizing, via the computer infrastructure, the plurality of jobs based on their respective income, processing need, and SLA terms, wherein the prioritizing ensures that the set of SLA terms are met while maximizing the income and without exceeding the processing capacity; performing, via the computer infrastructure, the prioritized set of jobs from the plurality of jobs; and performing, via the computer infrastructure, a portion of at least one job other than the prioritized set of jobs if enough actual processing capacity exists to complete the portion of the at least one job, wherein the computer infrastructure comprises at least one computer. - View Dependent Claims (20)
-
Specification