Ownership policy
With multidimensional scheduling, each consumer can own specific resources such as hosts or resource groups.
- Ownership, from most preferred resource to least preferred.
- Private share pool, from parent, grandparent, and so on, in that order.
- Public share pool.
The owned resources are assigned in order of consumer rank. The consumer can either fully own the resources, partially own them, or own an aggregate subset. A mid-level consumer must own an equal number or more resources than its children. Any remaining resources that are not owned by a consumer's children are collected in a private share pool shared by the children.
You can define a preference level for each resource group used by the plan at the highest level. The resource orchestrator tries to use a consumer's owned resources with higher preference before using ones with lesser preference. You can also define whether to reclaim owned resources to satisfy a higher preference ownership, even if there are idle slots in less preferred ownership or the share pool.
Resources can be lent out from a consumer's ownership or reserved. When a leaf consumer or all the children of a middle consumer cannot fully use an owned resource, it can be lent out to the share pool. The consumer lends out to the private share pool of its parent first, then its parent can lend out the resource to a higher level. You can define a grace period so that only consumers with a grace period less than or equal to the lending consumer's grace period can borrow the resource.
Ownership of child consumers is assigned from their parent. As a result, the configured resource must be a subset of their parent's own resources. If the parent's ownership is not fully assigned to its children, the remaining resources are put in a private share pool under the parent consumer, where all its children can share them according to the share policy.
How changes in a resource plan or resource group affect ownership
The resource orchestrator assigns resource ownership to each consumer when the resource plan is created. If the resource plan changes or there is a change in a resource group, the ownership is adjusted. The resource orchestrator tries to minimize the impact to existing workload as follows:
- The resource orchestrator goes through the list of consumers to remove resources from ownerships that are no longer owned by the consumer or do not have any workload. Resources removed from ownerships are added to the public share pool temporarily, and are re-assigned to the consumer if they were removed because of no workload.
- The resource orchestrator goes through the list of consumers who did not get their configured
ownership, in order of rank. The resource orchestrator traverses the higher-rank consumers first and
choose resources in the following order.
- Public share pool hosts with the least workload to highest workload.
- Hosts owned by other consumers starting with lowest rank, and with the least workload to most workload.
During the resource selection process, the whole host is chosen unless the configuration only allows partial host selection or another high-rank consumer has already chosen a partial host. If the host is partially taken by a high-ranking consumer and this consumer asks for the whole host, it still takes the partial host if an alternative is not available.
- If the resource group shrinks because of reconfiguration or a host is down, the ownership is recalculated and a consumer who owns more than the recalculated ownership is trimmed. A higher-rank consumer's resource requirements are not considered when choosing which hosts to trim. For consumers with constraints on ownership, it may not be possible to get resources to match its new ownership value. The resource orchestrator periodically collects free owned resources from all consumers and redistributes them to ownerships by consumer rank.
- After all ownerships are adjusted, the scheduling policy rebalances existing allocations. The lending out grace period is enforced and may override the grace period of borrowers who have existing allocations.