This uses the newly added ovsdb_idl_set_write_changed_only_all() to explicitly disable atomicity checks for read/write columns and to enable optimizing the process of building the SB transaction.
Bump OVS submodule to pick up d94cd0d3eec3 ("ovsdb-idl: Support write-only-changed IDL monitor mode."). Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2069623 Signed-off-by: Dumitru Ceara <dce...@redhat.com> --- NOTE: this bumps the OVS submodule to a revision that's not yet part of a stable branch. --- northd/ovn-northd.c | 10 +++++++++- ovs | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c index 45b120697..0a0f85010 100644 --- a/northd/ovn-northd.c +++ b/northd/ovn-northd.c @@ -723,10 +723,18 @@ main(int argc, char *argv[]) unixctl_command_register("nb-connection-status", "", 0, 0, ovn_conn_show, ovnnb_idl_loop.idl); - /* We want to detect all changes to the ovn-sb db. */ + /* We want to detect all changes to the ovn-sb db so enable change + * tracking but, for performance reasons, and because northd + * reconciles all database changes, also configure the IDL to only + * write columns that actually change value. + */ struct ovsdb_idl_loop ovnsb_idl_loop = OVSDB_IDL_LOOP_INITIALIZER( ovsdb_idl_create(ovnsb_db, &sbrec_idl_class, true, true)); ovsdb_idl_track_add_all(ovnsb_idl_loop.idl); + ovsdb_idl_set_write_changed_only_all(ovnsb_idl_loop.idl, true); + + /* Disable alerting for pure write-only columns. */ + ovsdb_idl_omit_alert(ovnsb_idl_loop.idl, &sbrec_sb_global_col_nb_cfg); unixctl_command_register("sb-connection-status", "", 0, 0, ovn_conn_show, ovnsb_idl_loop.idl); diff --git a/ovs b/ovs index ba159ee0f..d94cd0d3e 160000 --- a/ovs +++ b/ovs @@ -1 +1 @@ -Subproject commit ba159ee0f97ed770c244cd6710d34fe20595541d +Subproject commit d94cd0d3eec33e4290d7ca81918f5ac61444886e -- 2.27.0 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev