Priority based scheduling system for server
First Claim
1. At a computer system, a method for executing prioritized computer-related maintenance tasks, the method comprising:
- accessing a plurality of tasks that can be executed at the computer system, the plurality of tasks including a first task and a second task, the first task having an expressly defined relationship with the second task;
for each task included in the plurality of tasks;
the task including;
a set of one or more performance parameters, the set of one or more performance parameters corresponding to computer-related components used by the task, the computer related components including a combination of hardware and software components optimized to perform the task; and
a set of one or more trigger parameters, each of the one or more trigger parameters used to determine if the task is more or less likely to be executed;
accessing the set of one or more trigger parameters for the task; and
assigning a priority to the task based on the accessed set of one or more trigger parameters, the assigned priority relative to the priority of other tasks included in the plurality of tasks;
identifying the first task for execution based on the assigned priorities;
executing the first task;
during execution of the first task;
monitoring the set of one or more trigger parameters for each of the plurality of tasks;
monitoring the set of one or more performance parameters for each of the plurality of tasks;
detecting a change in one or more of a trigger parameter included in the set of one or more trigger parameters monitored for each of the plurality of tasks and a performance parameter included in the set of one or more performance parameters monitored for each of the plurality of tasks, the trigger parameter and the performance parameter associated with one or more tasks from among the plurality of tasks;
updating one or more specified parameters in at least one of;
the set of one or more trigger parameters and the set of one or more performance parameters for each of the associated one or more tasks to reflect the detected change;
adjusting the priority of the one or more tasks relative to the priority of other tasks included in the plurality of tasks based on the updated one or more specified parameters, adjusting the priority of the one or more tasks comprising;
lowering the priority of or raising the priority of each of the one or more tasks;
analyzing the expressly defined relationship with the second task;
determining that the first task and the second task can be executed in parallel based on the expressly defined relationship;
executing the second task based on the determination;
re-evaluating execution of tasks from among the plurality of tasks based on the adjusted priorities for the one or more tasks; and
in response to the re-evaluation, permitting the first task to continue executing in parallel with one other task from among the plurality of tasks.
2 Assignments
0 Petitions
Accused Products
Abstract
A priority based scheduling system for a server prioritizes multiple tasks that are defined using various constraints, which may include relationships defined between different tasks, performance parameters for each task, and completion constraints. The system may track actual performance of a task and update the performance parameters over time. Some embodiments may include a status monitoring agent that may detect that a monitored network parameter has changed that may cause a scheduled task to be raised or lowered in priority. The system may be used to schedule and execute one time tasks as well as recurring tasks, and may execute those tasks during a rigid or flexible periodic time window. Many of the tasks may be pausable and resumable, and such tasks may be performed in increments over successive time windows.
-
Citations
17 Claims
-
1. At a computer system, a method for executing prioritized computer-related maintenance tasks, the method comprising:
-
accessing a plurality of tasks that can be executed at the computer system, the plurality of tasks including a first task and a second task, the first task having an expressly defined relationship with the second task; for each task included in the plurality of tasks; the task including; a set of one or more performance parameters, the set of one or more performance parameters corresponding to computer-related components used by the task, the computer related components including a combination of hardware and software components optimized to perform the task; and a set of one or more trigger parameters, each of the one or more trigger parameters used to determine if the task is more or less likely to be executed; accessing the set of one or more trigger parameters for the task; and assigning a priority to the task based on the accessed set of one or more trigger parameters, the assigned priority relative to the priority of other tasks included in the plurality of tasks; identifying the first task for execution based on the assigned priorities; executing the first task; during execution of the first task; monitoring the set of one or more trigger parameters for each of the plurality of tasks; monitoring the set of one or more performance parameters for each of the plurality of tasks; detecting a change in one or more of a trigger parameter included in the set of one or more trigger parameters monitored for each of the plurality of tasks and a performance parameter included in the set of one or more performance parameters monitored for each of the plurality of tasks, the trigger parameter and the performance parameter associated with one or more tasks from among the plurality of tasks; updating one or more specified parameters in at least one of;
the set of one or more trigger parameters and the set of one or more performance parameters for each of the associated one or more tasks to reflect the detected change;adjusting the priority of the one or more tasks relative to the priority of other tasks included in the plurality of tasks based on the updated one or more specified parameters, adjusting the priority of the one or more tasks comprising;
lowering the priority of or raising the priority of each of the one or more tasks;analyzing the expressly defined relationship with the second task; determining that the first task and the second task can be executed in parallel based on the expressly defined relationship; executing the second task based on the determination; re-evaluating execution of tasks from among the plurality of tasks based on the adjusted priorities for the one or more tasks; and in response to the re-evaluation, permitting the first task to continue executing in parallel with one other task from among the plurality of tasks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising:
-
a trigger database, the trigger database storing trigger parameters; a performance database, the performance database storing performance parameters; task definitions defining a plurality of tasks, the plurality of tasks including a first task and a second task, the first task having an expressly defined relationship with the second task, each task in the plurality of tasks including; a set of one or more performance parameters from the performance database, each of one or more performance parameters corresponding to a computer-related component the task can use, the computer related components including a combination of hardware and software components optimized to perform the task; and a set of one or more trigger parameters, each of the one or more trigger parameters used to determine if the task is more or less likely to be executed;
a prioritizer, the prioritizer configured to;in response to a user command or a detected change in a trigger parameter or a computer-related component associated with a task and for each of the plurality of tasks; access the set of one or more trigger parameters for the task and the set of one or more performance parameters for the task; and adjust a priority for the task based on the set of one or more trigger parameters and the set of one or more performance parameters, the priority relative to the priority of other tasks included in the plurality of tasks, adjusting the priority for the task comprising;
lowering the priority of the task or raising the priority of the task;a trigger monitoring agent, the trigger monitoring agent configured to; monitor the set of trigger parameters for each of the plurality of tasks during execution of tasks from among the plurality of tasks; detect changes in trigger parameters in the set of one or more trigger parameters during execution of tasks from among the plurality of tasks; and update the detected changes in trigger parameters in the trigger parameter database; a performance monitoring agent, the performance monitoring agent configured to; monitor corresponding the set of performance parameters for each of the plurality of tasks during execution of tasks from among the plurality of task; detect changes in performance parameters in the set of one or more performance parameters during execution of tasks from among the plurality of tasks; and update the detected changes in performance parameters in the performance parameter database; and a task executor, the task executor configured to; execute the first task; analyze the expressly defined relationship with the second task; determine that the first task and the second task can be executed in parallel based on the expressly defined relationship; execute the second task based on the determination; re-evaluate execution of tasks from among the plurality of tasks based on the adjusted task priorities; and in response to the re-evaluation of execution, permit the first task to continue executing in parallel with one other task from among the plurality of tasks. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product for use at a computer system, the computer program product for implementing a method for executing prioritized computer-related maintenance tasks, computer program product comprising one or more computer storage hardware devices having stored thereon computer-executable instructions that, when executed, cause the computer system to perform the method, including the following
access a plurality of tasks that can be executed at the computer system, the plurality of tasks including a first task and a second task, the first task having an expressly defined relationship with the second task; -
for each of the plurality of tasks; the task including; a set of one or more performance parameters, each of one or more performance parameters corresponding to a computer-related components used by the task, the computer-related components including a combination of hardware and software components optimized to perform the task; and a set of one or more trigger parameters, each of the one or more trigger parameters used to determine if the task is more or less likely to be executed; access the set of one or more trigger parameters for the task; and assign a priority to the task based on the accessed set of one or more trigger parameters, the assigned priority relative to the priority of other tasks included in the plurality of tasks; identify the first task for execution based on the assigned priorities; execute the first task; during execution of the first task; monitor the set of one or more trigger parameters for each of the plurality of tasks; monitor the set of one or more performance parameters for each of the plurality of tasks; detect a change in one or more of a trigger parameter included in the set of one or more trigger parameters monitored for each of the plurality of tasks and a performance parameter included in the set of one or more performance parameters monitored for each of the plurality of tasks, the trigger parameter and the performance parameter associated with one or more tasks from among the plurality of tasks; update one or more specified parameters in at least one of;
the set of one or more trigger parameters and the set of one or more performance parameters for each of the associated one or more tasks to reflect the detected change;adjust the priority of the one or more tasks relative to the priority of other tasks included in the plurality of tasks based on the updated one or more specified parameters, adjusting the priority of the one or more tasks comprising;
lowering the priority of or raising the priority of each of the one or more tasks;analyze the expressly defined relationship with the second task; determine that the first task and the second task can be executed in parallel based on the expressly defined relationship; execute the second task based on the determination; re-evaluate execution of tasks from among the plurality of tasks based on the adjusted priorities for the one or more tasks; and in response to the re-evaluation, permit the first task to continue executing in parallel with one other task from among the plurality of tasks.
-
Specification