neutron/neutron
Thomas Morin a08aa3bf2f l3_ha_mode: call bulk _populate_mtu_and_subnets_for_ports
Based on the observation that a call to sync_routers can be very
slow (minutes) on some setup, and that profiling data show that
a significant amount of time is spent in many individual calls
of _process_sync_ha_data to _populate_mtu_and_subnets_for_ports for
a single interface, this change refactors _process_sync_ha_data to
call _populate_mtu_and_subnets_for_ports only once on a list of
interfaces instead of <n> times.

Said otherwise:
- before: O(#routers) SQL queries
          (one per network of an HA interface of a router)
- after : O(1) SQL queries
          (on the set of networks with an HA interface on a router)

A basic test shows a drastic improvements, from minutes to around
one second, in the processing of a sync_routers call with 256 routers.

Change-Id: I3a00c8fbb245ab3b6d93bdaa97f3435570992791
Related-Bug: 1692971
2017-06-09 22:25:13 +00:00
..
agent Merge "DVR: Do not check HA state on DVR-only routers" into stable/ocata 2017-05-25 22:50:35 +00:00
api api: work around Routes cutting off suffix from resource id 2017-06-02 15:23:06 +00:00
callbacks Merge "Routed networks IPv4 inventory in Nova GRP" 2017-01-24 22:37:41 +00:00
cmd Disable process monitor for keepalived test 2017-03-09 15:55:10 +00:00
common Fixes crash when starting Neutron OVS Agent on Windows 2017-04-05 11:48:52 +03:00
conf Revert "Linux Bridge: driver support for QoS egress minimum bandwidth" 2017-02-10 04:34:21 +00:00
core_extensions Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
db l3_ha_mode: call bulk _populate_mtu_and_subnets_for_ports 2017-06-09 22:25:13 +00:00
debug Replace device owners hard coded strings to neutron_lib constants 2016-07-12 04:11:35 -04:00
extensions Enhance tag mechanism 2017-02-06 10:09:05 +00:00
hacking Register sqlalchemy events through hook for UT cleanup 2017-01-20 04:15:01 -08:00
ipam OVO for Ipam(Allocation,Subnet,Pool) 2017-01-19 19:25:01 +00:00
locale Imported Translations from Zanata 2017-04-16 09:45:42 +00:00
notifiers Turn nova notifier into a proper rate limiter 2017-03-20 20:48:58 +00:00
objects Enforce port QoS policies for all ports. 2017-05-19 11:50:32 +00:00
pecan_wsgi Init policy in pecan after hook as well 2017-04-28 10:01:52 +00:00
plugins Utils: make delete_port_on_error more informative 2017-06-03 15:07:21 +00:00
privileged Do not raise an error deleting neighbour entry 2017-01-26 16:22:20 -05:00
quota Register sqlalchemy events through hook for UT cleanup 2017-01-20 04:15:01 -08:00
scheduler Remove deprecated min_l3_agents_per_router 2017-01-16 14:25:22 -05:00
server Revert "Revert "Remove threading before process forking"" 2016-06-02 21:26:08 +00:00
services Remove minimum_bandwidth_rule from rules supported by Linuxbridge agent 2017-05-20 04:36:07 +00:00
tests Merge "Utils: make delete_port_on_error more informative" into stable/ocata 2017-06-06 09:50:18 +00:00
__init__.py Hacking rule to check i18n usage 2016-03-30 21:28:37 -04:00
_i18n.py Move i18n to _i18n, as per oslo_i18n guidelines 2015-12-01 19:29:10 -07:00
auth.py Consume ConfigurableMiddleware from oslo_middleware 2015-10-08 17:59:43 +00:00
context.py Correctly set project_name 2017-01-20 16:11:00 -05:00
manager.py Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
neutron_plugin_base_v2.py Revert "Revert "Remove threading before process forking"" 2016-06-02 21:26:08 +00:00
opts.py XenAPI: Support daemon mode for rootwrap 2017-01-19 07:33:43 +00:00
policy.py Merge "Use to_policy_values for policy enforcement" 2016-12-02 23:00:00 +00:00
service.py Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
version.py
worker.py Move AgentStatusCheckWorker to PeriodicWorker 2016-11-17 15:31:19 -08:00
wsgi.py Merge "Use dispose_pool() from oslo.db" 2016-08-26 22:03:41 +00:00