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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp