wrench::EvictionAverseServerlessPlanSelectionPolicy

class EvictionAverseServerlessPlanSelectionPolicy : public wrench::ServerlessPlanSelectionPolicy

A policy that selects the plan that has, in lexicographic order:

  • The least number of idle container evictions

  • The least number of in-RAM layer evictions

  • The least number of on-disk layer evictions

  • The least number of to-RAM layer loads

  • The least number of to-disk layer copies

Public Functions

virtual std::shared_ptr<ServerlessComputeNode> pickBestInvocationPlan(const std::map<std::shared_ptr<ServerlessComputeNode>, std::shared_ptr<ServerlessSchedulingDecisions>> &plans) override

Select the node that has the best invocation plan.

Parameters:

plans – a map of plans

Returns:

a compute node

virtual std::shared_ptr<ServerlessComputeNode> pickBestLayerCopyPlan(const std::map<std::shared_ptr<ServerlessComputeNode>, std::shared_ptr<ServerlessSchedulingDecisions>> &plans) override

Select the node that has the best layer-copy plan.

Parameters:

plans – a map of plans

Returns:

a compute node

virtual std::shared_ptr<ServerlessComputeNode> pickBestLayerLoadPlan(const std::map<std::shared_ptr<ServerlessComputeNode>, std::shared_ptr<ServerlessSchedulingDecisions>> &plans) override

Select the node that has the best layer-load plan.

Parameters:

plans – a map of plans

Returns:

a compute node