Patent ID: 8695005

Claim:
A method of selecting a task from a queue of tasks to be executed in a distributed computing environment by one of a plurality of computing devices, the method comprising: reading a summary of the task in the queue of tasks, the summary listing an application type related to the task; calculating a priority score for the task to be executed on each of the plurality of computing devices based at least in part on the application type related to the task, wherein each of the calculated priority scores comprises an indication of a relative priority of the task for each of the plurality of computing devices in comparison to additional tasks in the queue, wherein calculating the priority score includes: calculating a new function cost for the specific computing device wherein the new function cost comprises a cost to switch from one function to another function required by the task in the queue; calculating a deployment cost for the specific computing device wherein the deployment cost comprises a cost of deploying an additional function required by the task in the queue; calculating a switching cost for the specific computing device wherein the switching cost comprises a cost of switching from a last executed function to a newly deployed function required by the task in the queue; calculating a wait cost for the specific computing device wherein the wait cost comprises a cost of leaving the task in the queue; and evaluating the new function cost, the deployment cost, the switching cost and the wait cost to determine the priority score for the task on the specific computing device; and based on the calculated priority scores, assigning the task to be executed by a specific computing device with a highest priority score among the plurality of computing devices.