The rationale for the check against "older" instances is to try to avoid the case where two anti-affinity instances land on the same node, they *both* detect problems, and they *both* reschedule, potentially landing on the same node again. Ideally we want only one of them to reschedule and the other to continue.
Note that the check is called get_older_member_hosts() because it used to just check for instances that were created before the instance in question, but now it also looks at "newer" instances which are "further ahead" in being created. (To account for out-of-order processing.)
The rationale for the check against "older" instances is to try to avoid the case where two anti-affinity instances land on the same node, they *both* detect problems, and they *both* reschedule, potentially landing on the same node again. Ideally we want only one of them to reschedule and the other to continue.
The starlingx server group validation stuff is here: /github. com/starlingx- staging/ stx-nova/ blob/master/ nova/compute/ manager. py#L1408- L1436
https:/
The check against "older" instances is here: /github. com/starlingx- staging/ stx-nova/ blob/master/ nova/objects/ instance_ group.py# L550-L572
https:/
Note that the check is called get_older_ member_ hosts() because it used to just check for instances that were created before the instance in question, but now it also looks at "newer" instances which are "further ahead" in being created. (To account for out-of-order processing.)