[openstack-dev] [Nova] Does Nova really need an SQL database?
Chris Friesen
chris.friesen at windriver.com
Tue Nov 19 17:29:00 UTC 2013
On 11/18/2013 06:47 PM, Joshua Harlow wrote:
> An idea related to this, what would need to be done to make the DB have
> the exact state that a compute node is going through (and therefore the
> scheduler would not make unreliable/racey decisions, even when there are
> multiple schedulers). It's not like we are dealing with a system which
> can not know the exact state (as long as the compute nodes are connected
> to the network, and a network partition does not occur).
How would you synchronize the various schedulers with each other?
Suppose you have multiple scheduler nodes all trying to boot multiple
instances each.
Even if each at the start of the process each scheduler has a perfect
view of the system, each scheduler would need to have a view of what
every other scheduler is doing in order to not make racy decisions.
I see a few options:
1) Push scheduling down into the database itself. Implement scheduler
filters as SQL queries or stored procedures.
2) Get rid of the DB for scheduling. It looks like people are working
on this: https://blueprints.launchpad.net/nova/+spec/no-db-scheduler
3) Do multi-stage scheduling. Do a "tentative" schedule, then try and
update the DB to reserve all the necessary resources. If that fails,
someone got there ahead of you so try again with the new data.
Chris
More information about the OpenStack-dev
mailing list