[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.


More information about the OpenStack-dev mailing list