wrench::FewestServerlessEvictionPolicy

class FewestServerlessEvictionPolicy : public wrench::ServerlessEvictionPolicy

An eviction policy that uses a heuristic to evict the smallest number of items (idle containers, in-RAM layers, on-disk layers)

Public Functions

virtual std::set<std::shared_ptr<Container>> pickIdleContainersForEviction(const std::set<std::shared_ptr<Container>> &idle_containers, sg_size_t &ram_space_to_free_up, sg_size_t &disk_space_to_free_up) override

Method to pick idle containers to evict using the “FEWEST” policy.

Parameters:
  • idle_containers – List of (idle) containers to sort

  • ram_space_to_free_up – Amount of RAM to free up

  • disk_space_to_free_up – Amount of disk to free up

Returns:

A sorted list of (idle) containers

virtual std::set<std::shared_ptr<ImageLayer>> pickImageLayersForDiskEviction(const std::shared_ptr<ServerlessComputeNode> &node, const std::set<std::shared_ptr<ImageLayer>> &layers, sg_size_t &ram_space_to_free_up, sg_size_t &disk_space_to_free_up) override

Method to pick layers to evict from disk using the “Fewest” policy.

Parameters:
  • node – the compute node where the evictions are to take place

  • layers – candidate victim layers

  • ram_space_to_free_up – Amount of Disk to free up

  • disk_space_to_free_up – Amount of disk to free up

Returns:

virtual std::set<std::shared_ptr<ImageLayer>> pickImageLayersForRAMEviction(const std::shared_ptr<ServerlessComputeNode> &node, const std::set<std::shared_ptr<ImageLayer>> &layers, sg_size_t &ram_space_to_free_up, sg_size_t &disk_space_to_free_up) override

Method to pick layers to evict from RAM using the “Fewest” policy.

Parameters:
  • node – the compute node where the evictions are to take place

  • layers – candidate victim layers

  • ram_space_to_free_up – Amount of RAM to free up

  • disk_space_to_free_up – Amount of disk to free up

Returns: