The description of this bug is a synthesis of the information found in the email chain titled "Optimizing ML2 updates" between members of the Networking DFG on April 25, 2019. ---- This bug is in the context of this BZ [0] which is now preventing OpenShift to run on OpenStack with Kuryr (and it's fully supported!). The main issue is that adding subports to a trunk results in subsequent calls from networking-ovn to the ML2 plugin updating the binding information of each subport to that of the parent [1]. Slaweq measured this and it takes around 6 seconds. The difference between OVN and OVS is that in OVS all happens in parallel processed by different RPC workers while in OVN the processing is done serially. Using a bulk update would not have helped much here. The problem is also that networking-ovn updates the port one by one (because the OVSDB events that signal that a port transitioned to ACTIVE are processed serially). We need to identify where those 6 seconds per call are being spent through profiling in order to asses if it is potentially optimizable. [0] https://bugzilla.redhat.com/show_bug.cgi?id=1691044 [1] https://github.com/openstack/networking-ovn/blob/master/networking_ovn/ml2/mech_driver.py#L708
Daniel, you can use https://review.opendev.org/#/c/627414/ for profiling neutron server.