wrench::ServerlessScheduler
-
class ServerlessScheduler
Abstract base class for scheduling in a serverless compute service.
Subclassed by wrench::GreedyServerlessScheduler, wrench::WorkloadBalancingServerlessScheduler
Public Functions
Given the list of schedulable invocations and the current system state, decide:
which idle containers to terminate
which images to copy to compute nodes
which images to load into memory at compute nodes
which invocations to start at compute nodes
Note that the disk and RAM at each compute host is managed using LRU, and so the scheduler doesn’t have full control (which would likely be intractable anyway). But that means that when asking from the system state questions like “how much RAM is available at that node?” is not clear-cut: the answer may be 0 but one can perhaps use the node because some memory content will be evicted due to the LRU behavior…
A scheduling decision is an intent, not a reservation. The serverless compute service checks whether the decision can actually be executed when it processes it.
- Parameters:
schedulable_invocations – A list of invocations whose images reside on the head node
state – The current system state
- Returns:
A SchedulingDecisions object