[ovs-dev] [PATCH ovn v4 0/7] northd: Split northd and northd incremental processing framework

Mark Gray mark.d.gray at redhat.com
Fri Sep 3 12:21:41 UTC 2021


Part 1:
The first two comits deal with reorganising the northd code base a little.
Please note that this commit mainly involves moving code around with minimal
code changes. However, due to tight coupling between ovn-northd.c and northd.c,
some minor changes were needed. For reference, and to help reviews, please
examine the following at a minimum:

* Configuration of the probe interval in northd.c (ovsdb_idl_set_probe_interval())
* Passing of "use_parallel_build" and "lflow_locks" from ovn-northd.c and
  northd.c.
* Update of "struct northd_context": additon of fields and move to h file.

The commits were (hopefully) structured in a way to make the review easier. As
this change touches all of ovn-northd, any change to "master" will make a rebase
necessary and probably difficult. Therefore, if the general ideas is OK, then
it would be great if this series could be expedited to prevent many rebases!

Part 2:
The remaining commits add the inc-proc-eng framework to northd. This does *not*
add any incremental processing of northd processing at this stage but provides the
framework. Even in this base configuration, we see an advantage as northd no longer
processes the databases if it has been woken up only to handle, for example, a
unixctl command. This can be seen below:

$ ovn-appctl -t ovn-northd stopwatch/reset
$ for i in {1..10}; do ovn-appctl -t ovn-northd stopwatch/show >/dev/null; done
$ ovn-appctl -t ovn-northd stopwatch/show ovnnb_db_run
Statistics for 'ovnnb_db_run'
  Total samples: 0
  Maximum: 0 msec
  Minimum: 0 msec
  95th percentile: 0.000000 msec
  Short term average: 0.000000 msec
  Long term average: 0.000000 msec

Hopefully this starting point will allow others to discuss or contribute changes to
incrementally process some aspects of northd. We can also decide if it is worth
progressing with "Part 2" if we think there are potential benefits until we start
seeing the benefits of DDlog.

Thanks

---
v2: Rebase
v3: Rebase. Fixed compile-time error
v4: Add additional commits which add framework for incremental processing in northd

Mark Gray (7):
  ovn-northd: Rename ovn-northd.c to northd.c
  northd: Split northd.c
  inc-proc-eng: Allow definition of engine_node with global scope
  northd: Introduce incremental processing for northd
  northd: Add n_nat_entries field to 'struct ovn_datapath'
  northd: Add runtime node
  northd: Add functionality to runtime node

 Documentation/tutorials/ovn-openstack.rst |   154 +-
 controller/ovn-controller.c               |     2 +-
 lib/inc-proc-eng.h                        |    24 +-
 northd/automake.mk                        |     8 +
 northd/en-northd.c                        |    52 +
 northd/en-northd.h                        |    17 +
 northd/en-runtime.c                       |    66 +
 northd/en-runtime.h                       |    25 +
 northd/inc-proc-northd.c                  |   258 +
 northd/inc-proc-northd.h                  |    15 +
 northd/lrouter.dl                         |     2 +-
 northd/northd.c                           | 14568 +++++++++++++++++++
 northd/northd.h                           |    45 +
 northd/ovn-northd.c                       | 15084 +-------------------
 northd/ovn.rs                             |     2 +-
 northd/ovn_northd.dl                      |     2 +-
 tests/ovn-northd.at                       |     2 +-
 17 files changed, 15454 insertions(+), 14872 deletions(-)
 create mode 100644 northd/en-northd.c
 create mode 100644 northd/en-northd.h
 create mode 100644 northd/en-runtime.c
 create mode 100644 northd/en-runtime.h
 create mode 100644 northd/inc-proc-northd.c
 create mode 100644 northd/inc-proc-northd.h
 create mode 100644 northd/northd.c
 create mode 100644 northd/northd.h

-- 
2.27.0




More information about the dev mailing list