From: Numan Siddique <[email protected]>
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
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev