keystoneauth/releasenotes/notes/client-side-rate-limiting-dec43fc9b54f5b70.yaml
Monty Taylor 09934718f7 Add support for client-side rate limiting
shade/openstacksdk has implemented client-side rate limiting on top of
keystoneauth for ages and uses it extensively in nodepool. As part of an
effort to refactor that code a new approach was devised which was much
simpler and therfore suitable for inclusion in keystoneauth directly.

The underlying goal is two-fold, but fundamentally is about allowing a
user to add some settings so that they can avoid slamming their cloud.
First, allow a user to express that they never want to exceed a given
rate. Second, allow a user to limit the number of concurrent requests
allowed to be in flight.

The settings and logic are added to Adapter and not Session so that the
settings can easily be per-service. There is no need to block requests
to nova on a neutron rate limit, after all.

Co-Authored-By: Ian Wienand <iwienand@redhat.com>
Needed-By: https://review.openstack.org/604926
Change-Id: Ic831e03a37d804f45b7ee58c87f92fa0f4411ad8
2019-02-28 22:14:24 +00:00

11 lines
471 B
YAML

---
features:
- |
Support added for client-side rate limiting. Two new parameters now
exist for ``keystoneauth1.adapter.Adapter``. ``rate`` expresses a
maximum rate at which to execute requests. ``parallel_limit`` allows
for the creation of a semaphore to control the maximum number of
requests that can be active at any one given point in time.
Both default to ``None`` which has the normal behavior or not limiting
requests in any manner.