Hey Guys,

It would probably be good to schedule an irc meeting to get the ball rolling on 
some db changes.  Based on some discussions that I've had recently, I see the 
following potential acition items.  Not all of these have been turned into 
blueprints yet:

1) Switch to using scoped sessions in sqlalchemy (the naive version of this 
apparently breaks migrations)
2) Try using the pure pyhon mysql driver so eventlet can monkeypatch the calls 
(this probably requires 1)
3) Sanitize all objects to dictionaries coming out of the db layer (the naive 
version of this is just wrapping all of the return values in dict())
4) Remove unused / stale db calls
5) Break db.api into multiple files
6) Test the db layer directly (This will give us a good record of expected 
objects returned from the db layer)
---
7) Use the law of demeter for db objects instead of indirectly accessing 
subobjects (This implies a heavy performance penalty, so we will probably need 
smart caching where we joinedload objects when possible and return the cached 
object instead of reloading)
8) Implement a second db driver (zookeeper)
9) Split the dbs for different components into separate databases (this is a 
heavy change and will require code changes throughout the code)

7-9 are definitely longer term goals, and they probably won't make it into the 
essex timeframe.  I think 1 through 6 are all doable in this release, and we 
may be able to make some progress on the others as well.

Vish


-- 
Mailing list: https://launchpad.net/~nova-database
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~nova-database
More help   : https://help.launchpad.net/ListHelp

Reply via email to