Smart scheduler
First Claim
1. At least one non-transitory computer readable storage medium having instructions encoded thereon which, when executed, perform a method for automatically preparing a machine that has one or more dimensions (“
- machine dimensions”
), each having a dimension value, to execute an automated computing job (“
job”
) that has one or more dimensions (“
job dimensions”
), each having a dimension value, wherein a job dimension is an explicit dimension which indicates that a job will be executed on a machine having the dimension only if the job explicitly requires the dimension, the method comprising;
attempting to schedule execution of the job by the machine;
determining whether a first dimension value for a job dimension for the job is different than a second dimension value for a machine dimension for the machine;
upon determining that the first and second dimension values are different;
identifying a plurality of config jobs to set the second dimension value for the machine dimension to be the same as the first dimension value for the job dimension, at least one of the plurality of config jobs being executable to modify, add or remove a component of an operating system of the machine, the plurality of config jobs comprising a first config job and a second config job, a config job dependency providing that the first config job is to execute prior to the second config job; and
creating a run comprising the plurality of config jobs on the machine, the run defining a sequence in which the first config job is executed prior to the second config job to equip the machine to execute the job, wherein creating the run of the config jobs on the machine includes;
selecting config jobs that delete machine dimensions not required by the job;
selecting config jobs that set dimensions in the machine required by the job; and
scheduling the selected config jobs to run on the machine;
upon determining that the first and second dimension values are the same, scheduling execution of the job by the machine;
wherein each machine dimension specifies an attribute of, or component provided by, an operating system of the machine, and each job dimension specifies an attribute of, or component provided by, an operating system of a machine equipped to execute the job.
2 Assignments
0 Petitions
Accused Products
Abstract
A smart scheduler is provided to prepare a machine for a job, wherein the job has specific requirements, i.e., dimensions. One or more config jobs are identified to configure the machine to meet the dimensions of the job. Information concerning the machine'"'"'s original configuration and groupings of config jobs that change the machine'"'"'s configuration are cached in a central storage. The smart scheduler uses information in the central storage to identify a suitable machine and one or more config jobs to configure the machine to meet the dimensions of a job. The smart scheduler schedules a run for the config jobs on the machine.
-
Citations
14 Claims
-
1. At least one non-transitory computer readable storage medium having instructions encoded thereon which, when executed, perform a method for automatically preparing a machine that has one or more dimensions (“
- machine dimensions”
), each having a dimension value, to execute an automated computing job (“
job”
) that has one or more dimensions (“
job dimensions”
), each having a dimension value, wherein a job dimension is an explicit dimension which indicates that a job will be executed on a machine having the dimension only if the job explicitly requires the dimension, the method comprising;attempting to schedule execution of the job by the machine; determining whether a first dimension value for a job dimension for the job is different than a second dimension value for a machine dimension for the machine; upon determining that the first and second dimension values are different; identifying a plurality of config jobs to set the second dimension value for the machine dimension to be the same as the first dimension value for the job dimension, at least one of the plurality of config jobs being executable to modify, add or remove a component of an operating system of the machine, the plurality of config jobs comprising a first config job and a second config job, a config job dependency providing that the first config job is to execute prior to the second config job; and creating a run comprising the plurality of config jobs on the machine, the run defining a sequence in which the first config job is executed prior to the second config job to equip the machine to execute the job, wherein creating the run of the config jobs on the machine includes; selecting config jobs that delete machine dimensions not required by the job; selecting config jobs that set dimensions in the machine required by the job; and scheduling the selected config jobs to run on the machine; upon determining that the first and second dimension values are the same, scheduling execution of the job by the machine; wherein each machine dimension specifies an attribute of, or component provided by, an operating system of the machine, and each job dimension specifies an attribute of, or component provided by, an operating system of a machine equipped to execute the job. - View Dependent Claims (2, 3, 4, 5, 6)
- machine dimensions”
-
7. A computing system for automatically preparing one or more machines to run an automated computing job (“
- job”
), comprising;(a) a plurality of machines, each of which has associated therewith one or more machine dimensions, each machine dimension having a dimension value, each machine dimension specifying an attribute of, or component provided by, an operating system of a corresponding machine; (b) a plurality of config jobs that can configure a machine to meet one or more job dimensions, each job dimension having a dimension value, each job dimension specifying an attribute of, or component provided by, an operating system of a machine equipped to execute a corresponding job, and wherein each job dimension is an explicit dimension which indicates that a job will be executed on a machine having the dimension only if the job explicitly requires the dimension; (c) a central storage containing information concerning the machines and the config jobs; and (d) a smart scheduler component, coupled with the machines, the config jobs, and the central storage, for scheduling execution of a job by a machine, the smart scheduler component being operative to; (i) determine whether a first dimension value for a job dimension for the job is different than a second dimension value for a machine dimension for the machine; (ii) upon determining that the first and second dimension values are different; identify a subset of the plurality of config jobs to equip the machine to run the job, each of the subset being executable to modify, add or remove a hardware component of an operating system of the machine, the subset comprising a first config job and a second config job, a config job dependency providing that the first config job is to execute prior to the second config job; create a run comprising at least the first and second config jobs on the machine, the run defining a sequence in which the first config job is to be executed prior to the second config job to the machine to run the job, wherein creating the run of the config jobs on the machine includes; selecting config jobs that delete machine dimensions not required by the job; selecting config jobs that set dimensions in the machine required by the job; and scheduling the selected config jobs to run on the machine; schedule for execution on the machine at least a portion of the run to configure the machine such that the second dimension value is the same as the first dimension value; and (iii) upon determining that the first and second dimension values are the same, scheduling execution of the job by the machine. - View Dependent Claims (8, 9, 10, 11, 12, 13)
- job”
-
14. At least one non-transitory computer-readable medium having instructions encoded thereon which, when executed, perform a method of selecting one or more machines to execute an automated job having a plurality of job dimensions, each job dimension having associated therewith a job dimension value, wherein each job dimension is an explicit dimension which indicates that a job will be executed on a machine having the dimension only if the job explicitly requires the dimension, the method comprising acts of:
-
(a) accessing information stored in a central storage relating to a plurality of machines, the information for each of the plurality of machines comprising a plurality of machine dimensions, each machine dimension corresponding to one of the plurality of job dimensions and having associated therewith a machine dimension value, each machine dimension relating to an attribute of, or component provided by, an operating system of a machine; (b) identifying, of the plurality of machines, the one machine having fewest machine dimensions for which the associated machine dimension value does not match the job dimension value for the corresponding job dimension; (c) identifying a group of configuration tasks to configure the one machine to execute the job; (d) accessing information on groups of configuration jobs to identify a group of configuration jobs, comprising a first configuration job and a second configuration job, to perform the group of configuration tasks identified in (c), the accessed information specifying that the first configuration job is to be executed prior to the second configuration job to configure the one machine to execute the automated job, wherein identifying the group of configuration jobs includes; selecting configuration jobs that delete machine dimensions not required by the job; selecting configuration jobs that set dimensions in the machine required by the job; and
scheduling the selected configuration jobs to run on the one machine;(e) executing the group of configuration jobs on the one machine, in a sequence in which the first configuration job is executed prior to the second configuration job, to configure the one machine to execute the automated job.
-
Specification