Loading…
This event has ended. View the official site or create your own event → Check it out
This event has ended. Create your own
View analytic
Friday, May 16 • 11:40am - 12:20pm
Common no DB Scheduler

Sign up or log in to save this to your schedule and see who's attending!

We have duplication of code in: Cinder, Nova and in future as well in Neutron.

They all use Scheduler to chose where resource could be obtained. Current algorithm is next:

All resources reports they status to DB
Scheduler on each request Fetch All DB records => make decision where to obtain resource => send request

In big deployments we have a lot of recourse that are attacking DB, and scheduler that is fetching big amounts of date from DB => produce bottleneck (that cannot be fixed by adding more DB servers).

Another problem that we have is that cross-project scheduling is impossible. E.g. If you would like to schedule instance on host that has enough disk space. (Nova & Cinder scheduler data)


But fortunately there is the another approach, that doesn't requires too much changes in current arch to cover both things.


Intro:
Actually almost almost everything is already done:

Schedulers are separated services, only thing that produce problem is that they are heavy bind to data from DB of project, and that they use DB of project.

To resolve this we can make next steps:
1) Each resource sends updates to scheduler (instead project DB)
2) Scheduler that took this update, sends it to common key-value in memory storage (between all scheduler service). => and using smart algorithm all schedulers updates their state of all resources.
3) Add name space for updates that are sends to scheduler (e.g. cinder/nova/...)
4) Cleanup: All calls to db.api: compute_node and volume_node methods now should work through rpc API of scheduler (and in future should be removed and API of Nova,CInder should directly call Scheduler service)

5) Split new Scheduler from Nova to separated project (now it is simple, cause new repo doesn't change anything)
6) Cinder resources should send updates to new project (Gantt)
7) Copy cinder filters to Gantt
8) Remove old Cinder scheduler and use Gantt

blueprint in Nova:
https://blueprints.launchpad.net/nova/+spec/no-db-scheduler


(Session proposed by Boris)


Friday May 16, 2014 11:40am - 12:20pm
B303

Attendees (53)