[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