Resource reclaim for multidimensional scheduling

When a consumer has unsatisfied demand and deserves more resources, it tries to reclaim resources from other consumers.

In multidimensional scheduling, resources are reclaimed from other consumers as follows:
  • If the consumer owns the resources, it deserves what is being used by other consumers.
  • If the consumer is using share pool resources (either private pool or public pool), it deserves more resource if it is under-allocated when compared to other consumers. A consumer is considered under-allocated if it has higher priority than other consumers or if consumers have the same priority, it has less (share usage)/(share ratio).

This is the order for reclaiming resources:

  1. Reclaim lent out resources owned by the consumer according to resource group preference level.
  2. Reclaim lent out resources from share pools, as follows:
    1. Reclaim from the closest private pool, according to resource group preference level.
    2. Reclaim from sibling consumers sharing the same private pool.
    3. Reclaim from other consumers in the share pool. From each pool that this consumer is trying to reclaim, it chooses the resource that is most over-used.
      Note: If an over-allocated consumer would become more under-allocated than the reclaiming consumer as a result of the reclaim, the reclaim is not executed.