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

Reply via email to