[openstack-dev] [nova] question about e41fb84 "fix anti-affinity race condition on boot"
chris.friesen at windriver.com
Sat Mar 15 18:39:02 UTC 2014
I'm curious why the specified git commit chose to fix the anti-affinity
race condition by aborting the boot and triggering a reschedule.
It seems to me that it would have been more elegant for the scheduler to
do a database transaction that would atomically check that the chosen
host was not already part of the group, and then add the instance (with
the chosen host) to the group. If the check fails then the scheduler
could update the group_hosts list and reschedule. This would prevent
the race condition in the first place rather than detecting it later and
trying to work around it.
This would require setting the "host" field in the instance at the time
of scheduling rather than the time of instance creation, but that seems
like it should work okay. Maybe I'm missing something though...
More information about the OpenStack-dev