Comment 9 for bug 1692971

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron (stable/ocata)

Reviewed: https://review.openstack.org/470428
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=a08aa3bf2f567d4d0a5678d470cc3a3aec382d74
Submitter: Jenkins
Branch: stable/ocata

commit a08aa3bf2f567d4d0a5678d470cc3a3aec382d74
Author: Thomas Morin <email address hidden>
Date: Fri Jun 2 15:36:43 2017 +0200

    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