Resource Class Affinity, a simple way to support NUMA via placement

Registered by Eric Fried

This blueprint describes a limited but simple mechanism to support modeling and exploiting NUMA via placement. The design does not attempt to solve the entire issue of affinity and anti-affinity. Rather, it allows us to address the majority of use cases in a way that's easy to understand, model, and use; and which does not restrict future development of an all-encompassing generic affinity/anti-affinity solution.

The crux is the ability to declare, within a request for allocation candidates, a list of resource classes whose resources must come from providers in the same aggregate. Virt drivers implementing update_provider_tree model each NUMA node as a branch off of the root provider, associating each provider in the branch with a single aggregate. Operators design flavors containing the list of the resource classes which must come from the same NUMA node. The scheduler passes that list to placement, which returns only allocation candidates which conform to that restriction.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Eric Fried
Direction:
Needs approval
Assignee:
None
Definition:
Obsolete
Series goal:
Proposed for rocky
Implementation:
Unknown
Milestone target:
None
Completed by
Eric Fried

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.