With the help of a new column in Logical_Flow table that stores ingress/egress lport information, ovn-controller can avoid parsing a big portion of the logical flows in SB DB, which can largely improve ovn-controller's performance whenever a full recompute is required.
With a scale test topology of 1000 chassises, 20 LSPs per chassis, 20k lports in total spread acrossing 200 logical switches, connected by a logical router, the test result before & after this change: Before: - lflow-cache disabled: - ovn-controller recompute: 2.7 sec - lflow-cache enabled: - ovn-controller recompute: 2.1 sec - lflow cache memory: 622103 KB After: - lflow-cache disabled: - ovn-controller recompute: 0.83 sec - lflow-cache enabled: - ovn-controller recompute: 0.71 sec - lflow cache memory: 123641 KB (note: DP group enabled for both) So for this test scenario, when lflow cache is disabled, latency reduced ~70%; when lflow cache is enabled, latency reduced ~65% and lflow cache memory reduced ~80%. TODO: DDlog change for ovn-northd. Note that this series applies on top of a pending patch: https://patchwork.ozlabs.org/project/ovn/patch/20210629192257.1699504-1-hz...@ovn.org/ Han Zhou (4): ovn-northd.at: Minor improvement for the dp group test case. ovn-sb: Add tags column to logical_flow table of the SB DB. ovn-northd: Populate in_out_port in logical_flow table's tags. ovn-controller: Skip non-local lflows in ovn-controller before parsing. controller/lflow.c | 21 +++ controller/lflow.h | 1 + controller/ovn-controller.c | 1 + northd/ovn-northd.c | 272 ++++++++++++++++++++---------------- ovn-sb.ovsschema | 7 +- ovn-sb.xml | 23 +++ tests/ovn-northd.at | 2 +- 7 files changed, 207 insertions(+), 120 deletions(-) -- 2.30.2 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev