Resource Rationing

Registered by Brian Waldon

Resource rationing has two main aspects:

(a) limiting the usage of scarce resources (e.g. storage space) to prevent starvation and incentivize good housekeeping behaviour by users.

(b) throttling the rate of incoming API calls to prevent inadvertent DDoS'ing by eager clients

Nova currently supports quotas and rate limiting which address (a) and (b) respectively. This functionality could be promoted to openstack-common and reused by glance from there, however in advance a number of improvements would be required:

1. Extend rate limiting with an estimated cost weighting, as the overhead in servicing glance call varies over several orders of magnitude.

2. Allow rate limits to be per-tenant as opposed to a single global set of thresholds.

3. Move the persistence of quotas from the nova DB into keystone.

Another useful feature would be support for white/blacklisting of individual tenants as an emergent operational fix, without requiring a service restart.

Blueprint information

Status:
Complete
Approver:
Brian Waldon
Priority:
Undefined
Drafter:
Eoghan Glynn
Direction:
Needs approval
Assignee:
Eoghan Glynn
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Mark Washenberger

Related branches

Sprints

Whiteboard

If one of the resources to be rationed is network bandwidth than perhaps this blueprint should be part of this effort: https://blueprints.launchpad.net/glance/+spec/transfer-rate-limiting

There is also a blueprint for basic quotas: https://blueprints.launchpad.net/glance/+spec/glance-basic-quotas.

The other apparent aspect of this draft is pushing quotas into Keystone. I don't think Glance can lead the way on such an effort. Since the other aspects are superseded, and because it appears to be talking about Nova instead of Glance, I'm marking this blueprint as obsolete.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.