ON-DEMAND CODE EXECUTION IN A LOCALIZED DEVICE COORDINATOR
First Claim
1. A system for managing resources within a coordinator computing device configured to manage one or more coordinated devices within a coordinated environment, the system 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;
obtain an availability of compute resources on the coordinator from the resource manager;
apply a scheduling algorithm to the queue based at least in part on the availability of compute resources to select at least one task call of the set of task calls for processing;
instruct the resource manager to select an execution environment in which to execute a 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;
wherein the processor is further configured to execute the resource manager in order to generate the execution environment 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.
30 Citations
25 Claims
-
1. A system for managing resources within a coordinator computing device configured to manage one or more coordinated devices within a coordinated environment, the system 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; obtain an availability of compute resources on the coordinator from the resource manager; apply a scheduling algorithm to the queue based at least in part on the availability of compute resources to select at least one task call of the set of task calls for processing; instruct the resource manager to select an execution environment in which to execute a 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; wherein the processor is further configured to execute the resource manager in order to generate the execution environment 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 to implement a resource manager, wherein implementation of the resource manager causes the computing system to; obtain a request for an execution environment 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; determine a set of data resources required for execution of the task; and generate an execution environment for execution of the task at least in part by provisioning the execution environment with access to the set of data resources; 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; 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 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; transmit the request for the execution environment in which to execute the first task; and execute the first task within the execution environment. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
17. A 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; 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 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; determining a set of data resources required for execution of the task; and generating an execution environment for execution of the task at least in part by provisioning the execution environment with access to the set of data resources; executing the first task within the execution environment.
-
Specification