Skip to content

Conversation

github-actions[bot]
Copy link

This PR contains a snapshot of yoga from upstream.

labedz and others added 8 commits August 25, 2023 12:06
To avoid mass response of OVN metadata agents on
heartbeat update - event on OVN Southbound
SB_Global table nb_cfg entry increment, this patch postpone
Chassis/Chassis_Private table update for random number
of seconds in range of ( cfg.CONF.agent_down_time // 2 ).

Related-Bug: #1991817
Change-Id: I6373a3c213b24ec957e4d2ea7fc42524517d10d5
(cherry picked from commit 628442a)
This change modifies the metadata agent heatbeat
to use a random offset with a max delay of 10 seconds.

The orgial reason for the current logic was to mitigate
https://bugs.launchpad.net/neutron/+bug/1991817
so the logic to spread the heatbeats is maintained but
we now set an upper bound on the delay.

Close-Bug: #2020215
Change-Id: I4d382793255520b9c44ca2aaacebcbda9a432dde
(cherry picked from commit 5e0c102)
HINT: This isn't a clean backport, as we keep the subnet in-use field.
We can't backport the db update that would remove the field.

in [1] a lock was introduced with the goal of preventing subnets from
being deleted while ports are being created in them in parallel.
This was acheived by aquiring an exclusive lock on the row of the
subnet in the Subnet table when adding/modifying a port or deleting
the subnet.

However as this was a exclusive lock it also prevented concurrent port
modifications on the same subnet from happening. This can cause
performance issues on environment with large shared subnets (e.g. a
large external subnet).

To reduce the lock contention for this case we split the lock in two
parts:

* For normal port operations we will aquire a shared lock on the
  row of the subnet. This allows multiple such operations to happen in
  parallel.
* For deleting a subnet we will aquire an exclusive lock on the row of
  the subnet. This lock can not be aquired when there is any shared
  lock currently on the row.

With this we maintain the same locking level as before, but reduce the
amount of lock contention happening and thereby improve throughput.

The performance improvement can be measured using rally test [2].
(improving from 21 to 18 seconds).
Alternatively it can be tested using 250 parallel curl calls to create a
port in the same network. This improves from 113s to 42s.

[1]: https://review.opendev.org/c/openstack/neutron/+/713045
[2]: https://github.com/openstack/rally-openstack/blob/master/samples/tasks/scenarios/neutron/create-and-delete-ports.json

Closes-Bug: #2009055
Change-Id: I31b1a9c2f986f59fee0da265acebbd88d2f8e4f8
(cherry picked from commit c0af5b3)
The job was inheriting from master variant which
is wrong.

Closes-Bug: 2042947
Change-Id: If954d7f8150532036ce2b3e0d5b33ef48004e39c
@github-actions github-actions bot requested a review from a team as a code owner November 10, 2023 13:36
@github-actions github-actions bot added automated Automated action performed by GitHub Actions synchronisation labels Nov 10, 2023
@markgoddard markgoddard merged commit 00c0d19 into stackhpc/yoga Nov 14, 2023
@markgoddard markgoddard deleted the upstream/yoga-2023-11-10 branch November 14, 2023 11:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automated Automated action performed by GitHub Actions synchronisation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants