This series is aimed to reduce size of a Southbound DB.
In modern OVN cluster there is a big probability that same logical
flows are installed for several logical switches.  Currently, OVN
will create a separate logical flow for each logical switch (datapath)
filled with exact same match, actions and so on.  The only difference
between these flows is a logical_datapath column.  Depending on
a size of a cluster, there could be hundreds or even thousands of
copies of the same flow.

This change introduces new table Logical Datapath Group.  With
this table we could combine datapaths in a single set and link
the whole datapath group to a single logical flow.

In my testing for a 7MB Northbound DB with 100 logical switches
taken from the ovn-k8s cluster test, size of a Southbound DB
decreased from 480 MB to 90 MB.

Number of logical flows in SB DB for this test case:
  Currently    - 1173779
  With patches - 171632


Version 2:
  * Implemented backward compatibility.
  * Datapath groups are not created for a single datapath.
  * Added index for faster iteration over changed logical flows.
  * Introduced option to enable this feature.  Disabled by default due
    to possible performance penalty in some cases (see commit messages
    and documentation).
  * All the unit tests fixed (passed with config enabled and disabled).
    -- Special thanks to Dumitru for the great help with debugging!
  * Added special unit test.  It should be useful to run all tests with
    and without datapath groups, but it will be much easier to implement
    later with testsuite updates made by Ben for ddlog.
  * ovn-detrace updated to support datapath groups.
  * General code cleanup + extra comments.

Following IDL fixes are important to have:
  https://patchwork.ozlabs.org/project/openvswitch/list/?series=217615&state=*
  These patches will be applied soon to OVS.

Ilya Maximets (6):
  tests: Sort flow and database dumps.
  ovn-sb.ovsschema: Add Logical Datapath Groups.
  controller: Add support for Logical Datapath Groups.
  utilities: Add support for Logical Datapath Groups.
  northd: Add support for Logical Datapath Groups.
  northd: Config option to enable use of Logical Datapath Groups.

 NEWS                        |   5 +
 controller/lflow.c          | 129 +++++++++++----
 controller/lflow.h          |   2 +
 controller/ovn-controller.c |  54 ++++++-
 lib/ovn-util.c              |  14 +-
 lib/ovn-util.h              |   3 +-
 northd/ovn-northd.c         | 302 ++++++++++++++++++++++++++++++------
 ovn-nb.xml                  |  20 +++
 ovn-sb.ovsschema            |  22 ++-
 ovn-sb.xml                  |  42 +++--
 tests/ovn-northd.at         |  84 +++++++++-
 tests/ovn.at                |   8 +-
 utilities/ovn-detrace.in    |   8 +-
 utilities/ovn-sbctl.c       | 108 +++++++++----
 utilities/ovn-trace.c       |  40 +++--
 15 files changed, 678 insertions(+), 163 deletions(-)

-- 
2.25.4

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to