← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2090782] [NEW] Some requests take a lot of time to process in OVN Octavia Provider on huge loadbalancers

 

Public bug reported:

In the OVN Octavia Provider, when processing a request that retrieves
data from the driver agent via Octavia Lib's DriverLibrary, significant
delays are observed. These delays stem from the to_data_model method of
Octavia's base model
(https://github.com/openstack/octavia/blob/3aaff5e3f7c857f253edf18bac432a32dc15a325/octavia/db/base_models.py#L64).
The issue is particularly severe for large load balancers with many
listeners and pools, where response times can reach almost 30 seconds
for a loadbalancer with 10 pools and 10 listeners.

Previously, a similar issue was reported
(https://bugs.launchpad.net/octavia/+bug/2019311), which led to adding
the recursion_depth argument to this method. However, this feature has
not been implemented in Octavia Driver Agent, Octavia Lib and the OVN
Octavia Provider for optimizing object retrieval.

In practice, the most time-consuming operations in the OVN Octavia
Provider involve fetching objects that require only the main node and
its first-level relationships. For example, in the
_get_current_operating_statuses method of the OvnProviderHelper class
(https://github.com/openstack/ovn-octavia-
provider/blob/1c04edc3b62400db462d95e1b3bf62928d58d22f/ovn_octavia_provider/helper.py#L3146).
Also, retrieving pools, listeners, and the load balancer could benefit
from a limited graph traversal.

** Affects: neutron
     Importance: Undecided
         Status: New


** Tags: ovn-octavia-provider

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/2090782

Title:
  Some requests take a lot of time to process in OVN Octavia Provider on
  huge loadbalancers

Status in neutron:
  New

Bug description:
  In the OVN Octavia Provider, when processing a request that retrieves
  data from the driver agent via Octavia Lib's DriverLibrary,
  significant delays are observed. These delays stem from the
  to_data_model method of Octavia's base model
  (https://github.com/openstack/octavia/blob/3aaff5e3f7c857f253edf18bac432a32dc15a325/octavia/db/base_models.py#L64).
  The issue is particularly severe for large load balancers with many
  listeners and pools, where response times can reach almost 30 seconds
  for a loadbalancer with 10 pools and 10 listeners.

  Previously, a similar issue was reported
  (https://bugs.launchpad.net/octavia/+bug/2019311), which led to adding
  the recursion_depth argument to this method. However, this feature has
  not been implemented in Octavia Driver Agent, Octavia Lib and the OVN
  Octavia Provider for optimizing object retrieval.

  In practice, the most time-consuming operations in the OVN Octavia
  Provider involve fetching objects that require only the main node and
  its first-level relationships. For example, in the
  _get_current_operating_statuses method of the OvnProviderHelper class
  (https://github.com/openstack/ovn-octavia-
  provider/blob/1c04edc3b62400db462d95e1b3bf62928d58d22f/ovn_octavia_provider/helper.py#L3146).
  Also, retrieving pools, listeners, and the load balancer could benefit
  from a limited graph traversal.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/2090782/+subscriptions