From a8ea64e02807baddf618119e87bd88de2a14c953 Mon Sep 17 00:00:00 2001 From: Max Lamprecht Date: Thu, 7 Dec 2023 11:35:59 +0100 Subject: [PATCH] add Port_Binding to lookup_table Currently the index logical_port on Port_Binding is missing because autocreate_indices() skips indexes with multiple columns: -> "indexes": [["datapath", "tunnel_key"], ["logical_port"]] This slows down the ovn-bgp-agent at scale(31060 Port_Binding entries) heavily. (See bug #https://bugs.launchpad.net/ovn-bgp-agent/+bug/2045892) Full sync iteration: Without Port_Binding index: ~6min With Port_Binding index: ~5sec Closes-Bug: #2045892 Change-Id: I815c695fd8a5e12a94e02a7a29da8aadc99541c4 --- ovsdbapp/schema/ovn_southbound/impl_idl.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ovsdbapp/schema/ovn_southbound/impl_idl.py b/ovsdbapp/schema/ovn_southbound/impl_idl.py index 105474d1..bfa6799c 100644 --- a/ovsdbapp/schema/ovn_southbound/impl_idl.py +++ b/ovsdbapp/schema/ovn_southbound/impl_idl.py @@ -21,6 +21,9 @@ class OvnSbApiIdlImpl(ovs_idl.Backend, api.API): lookup_table = { 'Chassis': idlutils.RowLookup('Chassis', 'name', None), 'MAC_Binding': idlutils.RowLookup('MAC_Binding', 'ip', None), + 'Port_Binding': idlutils.RowLookup( + 'Port_Binding', 'logical_port', None + ), } def chassis_add(self, chassis, encap_types, encap_ip, may_exist=False,