neutron/neutron/services/trunk/drivers/ovn
Flavio Fernandes a022301b50 Set binding profile directly from OVNTrunkDriver (redo cont.)
This is a tweak to changes done to fix bug 1834637. Specifically,
this change addresses scaling. The previous gerrit change had
modifications to all OVN sub-ports performed as a single
transaction. That did not account for race-condition on neutron
DB queries, which leads to timeouts under heavy loads.

Another cleanup done by this change is to fold an additional
update on neutron db into ovn trunk driver. That saves
update from doing another database transaction, thus making
it faster. The no longer needed function in mech_driver was
called _update_subport_host_if_needed

By breaking the iteration into multiple transactions, the
change in time is marginal:

  Service-level agreement
  NeutronTrunks :: neutron.create_trunk

  from 34.2 sec to 35.6 for 50%ile
  from 35.6 sec to 36.1 for 95%ile

This patch is a cherry pick from networking-ovn stable/train [1], that
is now part of networking-ovn migration to neutron repo.

[1]: https://review.opendev.org/#/c/698863/

Change-Id: I118f93cdd34a1d25327a0dc61367720ac6559001
Closes-Bug: #1834637
Co-authored-by: Maciej Józefczyk <mjozefcz@redhat.com>
(cherry picked from commit c418dd720b9be9047d779f32407c474e90cb0002)
2020-01-09 14:23:28 +00:00
..
__init__.py [OVN] Move trunk driver 2019-12-12 10:48:28 +00:00
trunk_driver.py Set binding profile directly from OVNTrunkDriver (redo cont.) 2020-01-09 14:23:28 +00:00