[octavia] usage of SELECT .. FOR UPDATE

Mohammed Naser mnaser at vexxhost.com
Sun Aug 30 15:41:26 UTC 2020


Hi everyone,

We're being particularly hit hard across different deployments where
Octavia has several SELECT .. FOR UPDATE queries which are causing
load balancers to fail to provision properly.

- spare_pools: This usually hits on rolling restarts of o-housekeeping
as they all seem to try to capture a lock --
https://github.com/openstack/octavia/blob/73fbc05386b512aa1dd86a0ed6e8455cc6b8dc7f/octavia/controller/housekeeping/house_keeping.py#L54

- quota: This hits when provisioning a lot of load balancers in
parallel.  For example in cases when using Heat --
https://github.com/openstack/octavia/blob/bf3d5372b9fc670ecd08339fa989c9b738ad8d69/octavia/db/repositories.py#L565-L566

These hurt quite a lot in a busy deployment and result in a poor user
experience unfortunately.  We're trying to off-load Octavia to it's
own database server but that is more of a "throw power at the problem"
solution.  I can imagine that we can probably likely look into a
better/cleaner alternative that avoids this entirely?

I'm happy to try and push for some of this work on our side.

Thanks,
Mohammed

-- 
Mohammed Naser
VEXXHOST, Inc.



More information about the openstack-discuss mailing list