wrench::ServerlessScheduler

class ServerlessScheduler

Abstract base class for scheduling in a serverless compute service.

Subclassed by wrench::GreedyServerlessScheduler

Public Functions

virtual std::shared_ptr<ServerlessSchedulingDecisions> schedule(const ServerlessStateOfTheSystem *state) = 0

Given the list of schedulable invocations and the current system state, decide:

  • how many compute nodes to activate

  • which compute nodes to deactivate

  • which invocations to forcefully fail

  • which idle containers to terminate

  • which layers to evict from RAM

  • which layers to evict from disk

  • which layers to copy to compute nodes

  • which layers to load into memory at compute nodes

  • which invocations to dispatch at compute nodes

  • which containers to prewarm at compute nodes

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:

state – The current system state

Returns:

A SchedulingDecisions object