From: Numan Siddique <num...@ovn.org>

This patch series adds the support to handle load balancer and
load balancer group changes incrementally in the "northd" engine
node. Changes to logical switches and router's load
balancer and load balancer group columns are also handled incrementally
provided other columns do not change.

v6 of the series also included lflow I-P handling.  But v7 drops these
patches as there are some concerns with the obj dep mgr usage. lflow I-P
handling patches will be submitted separately.

Below are the scale testing results done with these patches applied
using ovn-heater.  The test ran the scenario  -
ocp-500-density-heavy.yml [1].

With these patches applied (with load balancer I-P handling only in
northd engine node) the resuts are:

-------------------------------------------------------------------------------------------------------------------------------------------------------
                        Min (s)         Median (s)      90%ile (s)      99%ile 
(s)      Max (s)         Mean (s)        Total (s)       Count   Failed
-------------------------------------------------------------------------------------------------------------------------------------------------------
Iteration Total         0.131363        1.189994        3.213526        
4.308134        4.394562        1.385713        173.214153      125     0
Namespace.add_ports     0.005176        0.005611        0.006476        
0.019867        0.024206        0.006058        0.757188        125     0
WorkerNode.bind_port    0.033776        0.046343        0.054414        
0.061719        0.063613        0.046815        11.703773       250     0
WorkerNode.ping_port    0.005156        0.006959        2.044939        
3.655328        4.241496        0.627103        156.775832      250     0
-------------------------------------------------------------------------------------------------------------------------------------------------------


The results with the present main (Result 3) are:


-------------------------------------------------------------------------------------------------------------------------------------------------------
                        Min (s)         Median (s)      90%ile (s)      99%ile 
(s)      Max (s)         Mean (s)        Total (s)       Count   Failed
-------------------------------------------------------------------------------------------------------------------------------------------------------
Iteration Total         3.233795        4.364926        5.400982        
6.412803        7.409757        4.792270        599.033790      125     0
Namespace.add_ports     0.005230        0.006564        0.007379        
0.019060        0.037490        0.007223        0.902930        125     0
WorkerNode.bind_port    0.033864        0.044052        0.049608        
0.054849        0.056196        0.044005        11.001231       250     0
WorkerNode.ping_port    0.005334        2.060477        5.222422        
6.267332        7.284001        2.323020        580.754964      250     0
-------------------------------------------------------------------------------------------------------------------------------------------------------

v6 -> v7
-------
  * First 4 patches of v6 are merged in main and branch-23.09 and
    patches 9 to 16 are dropped.
  * v7 only has 4 patches now.
  * Addressed review comments.  There is only one handler for lb_data
    engine input in northd engine node - northd_handle_lb_data_changes().
    In v6 and earlier there were 2
    handle functions - northd_handle_lb_data_changes_pre_od() and
    northd_handle_lb_data_changes_post_od().  

v5 -> v6
-------
  * Rebased.  Added 2 more patches (p15 and p16) for LR NAT I-P handling.

v4 -> v5
-------
  * 6 new patches are added to the series which handles the LB changes
    in the lflow engine node.
v3 -> v4
-------
  * Covered more test scearios.
  * Found few issues and fixed them.  v3 was not handling the scenario of
    a vip getting added or removed from a load balancer.

v2 -> v3
--------
  * v2 was very inefficient in handling the load balancer group changes
    and in associating the load balancers of the lb group to the
    datapaths. This was the main reason for the regression in the full
    recompute time taken.
    v3 addressed these by more efficiently handling the lb group changes
    incrementally.



Numan Siddique (4):
  northd: Handle load balancer changes for a logical switch.
  northd: Handle load balancer group changes for a logical switch.
  northd: Sync SB Port bindings NAT column in a separate engine node.
  northd: Handle load balancer/group changes for a logical router.

 lib/lb.c                 |  51 ++-
 lib/lb.h                 |   9 +
 northd/en-lb-data.c      | 431 ++++++++++++++++++++++++-
 northd/en-lb-data.h      |  35 +++
 northd/en-lflow.c        |   6 +
 northd/en-northd.c       |  26 +-
 northd/en-northd.h       |   1 +
 northd/en-sync-sb.c      |  52 +++
 northd/en-sync-sb.h      |   5 +
 northd/inc-proc-northd.c |  15 +-
 northd/northd.c          | 660 ++++++++++++++++++++++++++++++---------
 northd/northd.h          |   9 +-
 tests/ovn-northd.at      | 145 +++++----
 13 files changed, 1224 insertions(+), 221 deletions(-)

-- 
2.41.0

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to