Dynamic scheduling of application tasks in a distributed task based system
AssigneeOracle America, Inc.
InventorsDavid Vengerov, Seth Proctor
Life of this patent
Estimating the term…
Abstract
Disclosed herein is a system and method for dynamic scheduling of application tasks in a distributed task-based system. The system and method employ a learning mechanism that observes and predicts overall application task costs across a networked system, taking into account how the states or loads of the applications are likely to change over time. The application task costs are defined in economic terms. The system and method allows continuous optimization of application response times as perceived by application users.
Claims15
A method of dynamically scheduling application tasks in a distributed task-based system, the method comprising:
- considering potential task scheduling actions for each application on a node;
- determining a predicted cost for each of the potential scheduling actions;
- selecting a scheduling action that minimizes a predicted sum cost for all applications running on the node;
- observing actual states of the applications resulting from the selected scheduling action;
- and
- updating the predicted cost for each state of each application, wherein updating the predicted cost for each state of each application includes employing a reinforcement learning methodology, the reinforcement learning methodology employing a following formula Ci(si)′=C(si)+αt(c−cave+C(sj)−C(si)), wherein Ci(si) is an updated cost for a previously observed state si, C(si) is a cost of the previously observed state si, αt is a learning rate that decreases over time, c is an application cost observed since states si, cave is an average value of c since a beginning of the cost updating process, and C(sj) is a cost of currently observed state sj.
A distributed task based computing system comprising:
- a plurality of computing nodes including a first computing node;
- a scheduler in communication with the first computing node, the scheduler configured to:
- consider potential task scheduling actions for each application on a node;
- determine a predicted cost for each of the potential scheduling actions;
- selecting a scheduling action that minimizes the predicted sum cost for all applications running on the node;
- observing actual states of the applications resulting from the selected scheduling action;
- and
- updating the predicted cost for each state of each application, wherein updating the predicted cost for each state of each application includes employing a reinforcement learning methodology, the reinforcement learning methodology employing a following formula Ci(si)′=C(si)+αt(c−cave+C(sj)−C(si)), wherein Ci(si) is an updated cost for a previously observed state si, C(si) is a cost of the previously observed state si, αt is a learning rate that decreases over time, c is an application cost observed since states si, cave is an average value of c since a beginning of the cost updating process, and C(sj) is a cost of currently observed state sj.
Dependencies are inferred from the claim text.