[ovs-dev] [PATCH ovn 0/4] Avoid parsing non-local lflows with the help of tags in SB.

Han Zhou hzhou at ovn.org
Fri Jul 16 00:07:14 UTC 2021


With the help of logical_flow's in_out_port tag, we can skip 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%.

Changes after the RFC patch:
- Rebase on master
- Add ddlog changes
- Add an ovn-northd test case to make sure the tags are added

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 ++
 northd/ovn-northd.c  | 272 ++++++++++++++----------
 northd/ovn_northd.dl | 495 +++++++++++++++++++++++++------------------
 ovn-sb.ovsschema     |   7 +-
 ovn-sb.xml           |  23 ++
 tests/ovn-northd.at  |  23 +-
 6 files changed, 520 insertions(+), 321 deletions(-)

-- 
2.30.2



More information about the dev mailing list