wrench::LRUServerlessEvictionPolicy

class LRUServerlessEvictionPolicy : public wrench::ServerlessEvictionPolicy

An eviction policy that evicts items (idle containers, in-RAM layers, on-disk layers) in LRU (Least Recently Used) order.

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 “LRU” 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 “LRU” policy.

Parameters:
  • node – the compute node where evictions 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:

a set of layers

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 “LRU” 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:

a set of layers