diff options
author | Boris Pavlovic <boris@pavlovic.me> | 2012-12-17 13:44:02 +0400 |
---|---|---|
committer | Boris Pavlovic <boris@pavlovic.me> | 2012-12-22 02:18:27 +0400 |
commit | 2c1653a16302a92f385940c1c3bf0562c3976d70 (patch) | |
tree | 69a955cd9736cae72b833c91124c3c0adc5ac7d1 /nova/exception.py | |
parent | 6d38a6145e4ded084d72714549d7f9b613c6936c (diff) | |
download | nova-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