Bug 2028011 - [RFE][cinder] New quota system (Dynamic Couting)
Summary: [RFE][cinder] New quota system (Dynamic Couting)
Keywords:
Status: ON_DEV
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-cinder
Version: 18.0 (Zed)
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: Alpha
: ---
Assignee: Rajat Dhasmana
QA Contact: Evelina Shames
RHOS Documentation Team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-12-01 10:04 UTC by Gorka Eguileor
Modified: 2024-01-09 15:20 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
OpenStack gerrit 819691 0 None NEW WIP: Quota: New quota system 2022-03-03 15:55:46 UTC
OpenStack gerrit 819693 0 None NEW New Quota System 2022-03-03 15:55:47 UTC
Red Hat Issue Tracker OSP-11129 0 None None None 2021-12-01 10:05:47 UTC

Description Gorka Eguileor 2021-12-01 10:04:48 UTC
Cinder quotas have been a constant pain for operators and cloud users. Engineering should work on an alternative to the current quota mechanism that doesn´t seem to work as it should no matter how many fixes are submitted.

Cinder's current quota system is based on reservations and commits/rollbacks. When an operation that consumes quota is received by the API it validates the request and checks that there's enough quota to perform the operation and creates reservations to ensure that this quota is not consumed by other operations. Then when the operation finishes these reservations are committed as used resources or rolled back if the operation failed.

A new quota system will replace the existing one, where usage and resource tracking is no longer stored as counters in a database table (``quota_usages``) and instead is dynamically calculated on each quota check based on the resources that exist in the database.

Calculations will be simple counting for resources (e.g. ``snapshots``) or sum of values for sizes (e.g. ``gigabytes``).

In addition to dynamically calculating the resources, the new quota system will reduce the number of reservations and commits/rollbacks used by the code as much as possible, and will only use them for the specific cases were they are the only way to keep track of the resources while the operation is in progress.

The only operations that will require the use of reservations are extend, retype, and transfer.


Note You need to log in before you can comment on or make changes to this bug.