nova/releasenotes/notes/consumer_generation-f576ac2...

19 lines
1.1 KiB
YAML

---
features:
- |
Adds a new ``generation`` column to the consumers table. This value is
incremented every time allocations are made for a consumer. The new
placement microversion 1.28 requires that all ``POST /allocations`` and
``PUT /allocations/{consumer_uuid}`` requests now include the
``consumer_generation`` parameter to ensure that if two processes are
allocating resources for the same consumer, the second one to complete
doesn't overwrite the first. If there is a mismatch between the
``consumer_generation`` in the request and the current value in the
database, the allocation will fail, and a 409 Conflict response will be
returned. The calling process must then get the allocations for that
consumer by calling ``GET /allocations/{consumer}``. That response will now
contain, in addition to the allocations, the current generation value for
that consumer. Depending on the use case, the calling process may error; or
it may wish to combine or replace the existing allocations with the ones it
is trying to post, and re-submit with the current consumer_generation.