On-demand code execution in a localized device coordinator
First Claim
1. A coordinator computing device configured to manage one or more coordinated devices within a coordinated environment, wherein the one or more coordinated devices are distinct from the coordinator computing device, the coordinator computing device comprising:
- a non-transitory data store including computer executable instructions corresponding to;
a scheduler that, when executed, implements a queue of calls to execute one or more tasks on the coordinator, wherein individual tasks of the one or more tasks correspond to code executable by the coordinator computing device to manage operation of the one or more coordinated devices within the coordinated environment;
a resource manager that, when executed, generates execution environments in which to execute the one or more tasks;
a processor in communication with the non-transitory data store and configured to execute the scheduler, wherein execution of the scheduler causes the processor to;
enqueue a set of task calls within the queue, individual task calls corresponding to a call to execute a task of the one or more tasks at the coordinator computing device;
obtain an availability of compute resources on the coordinator computing device from the resource manager;
apply a scheduling algorithm to the queue based at least in part on the availability of compute resources on the coordinator computing device to select at least one task call of the set of task calls for processing, wherein the coordinator computing device lacks sufficient compute resources to concurrently process both a task called by the selected at least one task call and tasks called by unselected task calls of the set of task calls, and wherein apply a scheduling algorithm to the queue comprises delaying processing on the coordinator computing device of the tasks called by the unselected task calls until sufficient compute resources become available on the coordinator computing device;
instruct the resource manager to select an execution environment on the coordinator computing device in which to execute the task corresponding to the at least one task call; and
execute the task corresponding to the at least one task call within the execution environment on the coordinator computing device, wherein the task, when executed, manages operation of at least one of the one or more coordinated devices within the coordinated environment;
wherein the processor is further configured to execute the resource manager in order to generate the execution environment on the coordinator computing device in which to execute the task corresponding to the at least one task call, and wherein generation of the execution environment includes provisioning the execution environment with a data resource required to execute the task corresponding to the at least one task call.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are described for implementing a coordinator within a coordinated environment, which environment includes set of coordinated devices managed by the coordinator. The coordinator can be provisioned with a set of tasks, each task corresponding to a segment of code that can be executed by the coordinator, such as to manage the coordinated devices. To assist in execution of the tasks, the coordinator can include a resource manager that generates execution environments corresponding to an individual task execution, which environments may be isolated from other execution environments. The coordinator can further include a scheduler to obtain calls to execute tasks, and implement a queue from which to select tasks for execution. On selecting a task, the scheduler may interact with the resource manager to generate an execution environment for the task, and cause execution of the task within the execution environment.
-
Citations
24 Claims
-
1. A coordinator computing device configured to manage one or more coordinated devices within a coordinated environment, wherein the one or more coordinated devices are distinct from the coordinator computing device, the coordinator computing device comprising:
-
a non-transitory data store including computer executable instructions corresponding to; a scheduler that, when executed, implements a queue of calls to execute one or more tasks on the coordinator, wherein individual tasks of the one or more tasks correspond to code executable by the coordinator computing device to manage operation of the one or more coordinated devices within the coordinated environment; a resource manager that, when executed, generates execution environments in which to execute the one or more tasks; a processor in communication with the non-transitory data store and configured to execute the scheduler, wherein execution of the scheduler causes the processor to; enqueue a set of task calls within the queue, individual task calls corresponding to a call to execute a task of the one or more tasks at the coordinator computing device; obtain an availability of compute resources on the coordinator computing device from the resource manager; apply a scheduling algorithm to the queue based at least in part on the availability of compute resources on the coordinator computing device to select at least one task call of the set of task calls for processing, wherein the coordinator computing device lacks sufficient compute resources to concurrently process both a task called by the selected at least one task call and tasks called by unselected task calls of the set of task calls, and wherein apply a scheduling algorithm to the queue comprises delaying processing on the coordinator computing device of the tasks called by the unselected task calls until sufficient compute resources become available on the coordinator computing device; instruct the resource manager to select an execution environment on the coordinator computing device in which to execute the task corresponding to the at least one task call; and execute the task corresponding to the at least one task call within the execution environment on the coordinator computing device, wherein the task, when executed, manages operation of at least one of the one or more coordinated devices within the coordinated environment; wherein the processor is further configured to execute the resource manager in order to generate the execution environment on the coordinator computing device in which to execute the task corresponding to the at least one task call, and wherein generation of the execution environment includes provisioning the execution environment with a data resource required to execute the task corresponding to the at least one task call. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. Non-transitory computer readable media including computer-executable instructions comprising:
-
first instructions executable by a computing system that is configured to manage one or more coordinated devices within a coordinated environment, the first instructions executable to implement a resource manager, wherein implementation of the resource manager causes the computing system to; obtain a request for an execution environment on the computing system in which to execute a first task of one or more tasks, wherein individual tasks of the one or more tasks correspond to code executable by the computing system to manage operation of the one or more coordinated devices within the coordinated environment; determine a set of data resources required for execution of the task; and generate an execution environment on the computing system for execution of the task at least in part by provisioning the execution environment with access to the set of data resources; and second instructions executable by the computing system to implement scheduler, wherein implementation of the scheduler causes the computing system to; enqueue a set of task calls within a queue, individual task calls corresponding to a call to execute a task of the one or more tasks at the computing system; obtain an availability of compute resources on the computing system; apply a scheduling algorithm to the queue based at least in part on the availability of compute resources on the computing system to select a task call of the set of task calls for processing, wherein the task call corresponds to a call to execute the first task, wherein the computing system lacks sufficient compute resources to concurrently process both a task called by the selected at least one task call and tasks called by unselected task calls of the set of task calls, and wherein applying the scheduling algorithm to the queue comprises delaying processing on the computing system of the tasks called by the unselected task calls until sufficient compute resources become available on the computing system; transmit to the resource manager the request for the execution environment on the computing system in which to execute the first task; and execute the first task within the execution environment on the computing system, wherein the first task, when executed, manages operation of at least one of the one or more coordinated devices within the coordinated environment. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer-implemented method implemented by a computing system configured to manage one or more coordinated devices within a coordinated environment, the computer-implemented method comprising:
-
enqueuing a set of task calls within a queue, individual task calls corresponding to a call to execute a task of the one or more tasks on the computing system, wherein individual tasks of the one or more tasks correspond to code executable by the computing system to manage operation of the one or more coordinated devices within the coordinated environment; obtaining an availability of compute resources on the computing system; applying a scheduling algorithm to the queue based at least in part on the availability of compute resources on the computing system to select a task call of the set of task calls for processing, wherein the task call corresponds to a call to execute the first task, wherein the computing system lacks sufficient compute resources to concurrently process both a task called by the selected at least one task call and tasks called by unselected task calls of the set of task calls, and wherein applying the scheduling algorithm to the queue comprises delaying processing on the computing system of the tasks called by the unselected task calls until sufficient compute resources become available on the computing system; determining a set of data resources required for execution of the task on the computing system; generating an execution environment on the computing system for execution of the task at least in part by provisioning the execution environment with access to the set of data resources; and executing the first task within the execution environment on the computing system, wherein the first task, when executed, manages operation of at least one of the one or more coordinated devices within the coordinated environment. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification