From 179483f38d04680464b5b0972d21ac64654157c7 Mon Sep 17 00:00:00 2001
From: Numan Siddique <numans@ovn.org>
Date: Tue, 24 Dec 2019 18:03:20 +0530
Subject: [PATCH 1/2] ovn-controller: Don't monitor connection table columns
ovn-controller doesn't need to know any changes to the connection
table row. This patch omits alerts for the Connection table
columns.
In a large scale deployment like 1000 chassis, this can cause lot of
CPU cycle wastages as ovsdb-server has to send out updates to all
the ovn-controller connections.
Acked-by: Dumitru Ceara <dceara@redhat.com>
Signed-off-by: Numan Siddique <numans@ovn.org>
(cherry-picked from upstream commit c80e014d4aaeb47f5967ed8730306fe3c16841c9)
Change-Id: I5ee2ca975fba7e36c0a6e87213edff64e479874a
---
ovn/controller/ovn-controller.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/ovn/controller/ovn-controller.c b/ovn/controller/ovn-controller.c
index c8470ce4e..ec6f15783 100644
--- a/ovn/controller/ovn-controller.c
+++ b/ovn/controller/ovn-controller.c
@@ -1828,7 +1828,6 @@ main(int argc, char *argv[])
ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_sb_global_col_external_ids);
ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_logical_flow_col_external_ids);
ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_port_binding_col_external_ids);
- ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_connection_col_external_ids);
ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_ssl_col_external_ids);
ovsdb_idl_omit(ovnsb_idl_loop.idl,
&sbrec_gateway_chassis_col_external_ids);
@@ -1836,6 +1835,18 @@ main(int argc, char *argv[])
ovsdb_idl_omit(ovnsb_idl_loop.idl,
&sbrec_ha_chassis_group_col_external_ids);
+ /* We don't want to monitor Connection table at all. So omit all the
+ * columns. */
+ ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_connection_col_external_ids);
+ ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_connection_col_inactivity_probe);
+ ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_connection_col_is_connected);
+ ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_connection_col_max_backoff);
+ ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_connection_col_other_config);
+ ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_connection_col_read_only);
+ ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_connection_col_role);
+ ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_connection_col_status);
+ ovsdb_idl_omit(ovnsb_idl_loop.idl, &sbrec_connection_col_target);
+
update_sb_monitors(ovnsb_idl_loop.idl, NULL, NULL, NULL);
stopwatch_create(CONTROLLER_LOOP_STOPWATCH_NAME, SW_MS);
--
2.24.1