summaryrefslogtreecommitdiffstats
path: root/nova/exception.py
diff options
context:
space:
mode:
authorBoris Pavlovic <boris@pavlovic.me>2012-12-17 13:44:02 +0400
committerBoris Pavlovic <boris@pavlovic.me>2012-12-22 02:18:27 +0400
commit2c1653a16302a92f385940c1c3bf0562c3976d70 (patch)
tree69a955cd9736cae72b833c91124c3c0adc5ac7d1 /nova/exception.py
parent6d38a6145e4ded084d72714549d7f9b613c6936c (diff)
downloadnova-2c1653a16302a92f385940c1c3bf0562c3976d70.tar.gz
nova-2c1653a16302a92f385940c1c3bf0562c3976d70.tar.xz
nova-2c1653a16302a92f385940c1c3bf0562c3976d70.zip
Database reservations methods performance optimization
In reservation_commit(): Was: *) 1 request to get all (N) reservations, *) 1 requrest to get all (M) usages, *) N query to update all reservations *) M query to update all usages Now there is only 1 db request to soft delete N reservations. result: 1 + 1 + N + M -> 1 + 1 + 1 + M remove usages save loop, because it will be automaticly make sqlalchemy session in transaction.__exit__() hook. In reservation_rollback(): Same as in reservation_commit() In quota_destroy_all_by_project(): Was: *) 1 request to get all (N) Quotas *) N request to soft delete all Quotas *) 1 request to get all (M) QuotaUsage *) M request to soft delete all QuotaUsages *) 1 request to get all (K) Reservations *) K request to soft delete Reservations Now there are only 3 requests. result: 3 + N + K -> 3 In reservation_expire(): Was: *) 1 request to get all (N) reservations *) N request to get each usage for reservation *) N request to update each usage *) N request to soft delete each reservations Now: *) 1 request to get all (N) reservations with usages *) N request to save each reservation *) 1 request to soft delete N reservations result: 1 + N + N + N -> 2 + N blueprint db-session-cleanup Change-Id: If6ddbe552b8f562cf6e8649eab96a375c4875487
Diffstat (limited to 'nova/exception.py')
0 files changed, 0 insertions, 0 deletions