Bug 2043119 - [OVN SCALE][ovn-northd] Incrementally process switch related load balancer changes
Summary: [OVN SCALE][ovn-northd] Incrementally process switch related load balancer ch...
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux Fast Datapath
Classification: Red Hat
Component: OVN
Version: FDP 21.K
Hardware: Unspecified
OS: Unspecified
high
unspecified
Target Milestone: ---
: ---
Assignee: OVN Team
QA Contact: Jianlin Shi
URL:
Whiteboard:
Depends On: 2043116
Blocks: 2043128
TreeView+ depends on / blocked
 
Reported: 2022-01-20 16:40 UTC by Dumitru Ceara
Modified: 2023-07-28 17:21 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-07-28 17:21:57 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
Scale test NB database. (1.74 MB, application/gzip)
2022-01-20 16:40 UTC, Dumitru Ceara
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker FD-1728 0 None None None 2022-01-20 16:43:37 UTC

Description Dumitru Ceara 2022-01-20 16:40:09 UTC
Created attachment 1852238 [details]
Scale test NB database.

Description of problem:

In ovn-northd, the build_ovn_lbs() function does a few things
a. builds the map of load balancers, parsing the contents of the NB.Load_Balancer table
b. associates the resulting load balancers to all datapaths corresponding to the logical switches that refer to the NB.Load_Balancer (either directly or via the NB.Load_Balancer_Group) table.
c. reconciles the SB.Load_Balancer table.

For example, with the attached NB database (from a scale test run), build_ovn_lbs() takes ~650msec on the test machine, each and every time northd runs to process a change in the NB/SB.

We could try to extract this functionality in a separate I-P node with the following inputs:
- NB.Load_Balancer
- NB.Load_Balancer_Group
- SB.Load_Balancer
- Datapaths (depending on bug 2043116)

This node's data could serve as input to a flow-generation node, and would be used to generate all switch load balancer related logical flows.

Comment 1 Dumitru Ceara 2022-01-20 16:45:55 UTC
> 
> We could try to extract this functionality in a separate I-P node with the
> following inputs:
> - NB.Load_Balancer
> - NB.Load_Balancer_Group
> - SB.Load_Balancer
> - Datapaths (depending on bug 2043116)
> 
> This node's data could serve as input to a flow-generation node, and would
> be used to generate all switch load balancer related logical flows.

On second thought, we probably need to split this in two different I-P nodes:

- one that computes ovn_northd_lb objects in general (new/updated/deleted)
- another one (that has as inputs: Datapaths, SB.Load_Balancer, NB.Load_Balancer_Group) and computes set of load balancers attached to each switch Datapath.

Comment 2 Mark Michelson 2022-01-20 18:06:10 UTC
I think separating this into two nodes is a good idea, since there is the possibility that the output of both nodes could be useful separately.

Since there is a separate BZ for router-related LB changes (2043128), would it make sense to divide this BZ in two? This way, the first node that computes sets of general ovn_northd_lb can be done first, and then the switch- and router-related LB tasks could be done in parallel.

Comment 3 Mark Michelson 2023-07-28 17:21:57 UTC
I'm closing this since northd load balancer I-P is being tracked in a different issue (and will be merged into OVN soon).


Note You need to log in before you can comment on or make changes to this bug.