yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #18937
[Bug 1355153] [NEW] Inefficient implementation of Linuxbridge agent get_bridge_for_tap_device
Public bug reported:
The implementation of LinuxBridgeManager.get_bridge_for_tap_device uses
an inefficient algorithm of repeatedly listing all bridges and their
interfaces for each call.
At scale, this implementation becomes very inefficient, causing the
agent to become unresponsive in reporting interfaces as up to nova,
leading to instance creation failure due to a timeout in
LibvirtDriver._create_domain_and_network.
This can be replaced with a constant-time implementation using the fact
that the tap device's 'brport' directory contains a 'bridge' symlink to
the bridge device, which carries the bridge name. The same symlink also
exists as 'master' on the same level as 'brport'.
The patch I propose also removes the single use of methods
get_all_neutron_bridges and interface_exists_on_bridge. I left these
methods in as their removal is not necessary for this bugfix.
** Affects: neutron
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1355153
Title:
Inefficient implementation of Linuxbridge agent
get_bridge_for_tap_device
Status in OpenStack Neutron (virtual network service):
New
Bug description:
The implementation of LinuxBridgeManager.get_bridge_for_tap_device
uses an inefficient algorithm of repeatedly listing all bridges and
their interfaces for each call.
At scale, this implementation becomes very inefficient, causing the
agent to become unresponsive in reporting interfaces as up to nova,
leading to instance creation failure due to a timeout in
LibvirtDriver._create_domain_and_network.
This can be replaced with a constant-time implementation using the
fact that the tap device's 'brport' directory contains a 'bridge'
symlink to the bridge device, which carries the bridge name. The same
symlink also exists as 'master' on the same level as 'brport'.
The patch I propose also removes the single use of methods
get_all_neutron_bridges and interface_exists_on_bridge. I left these
methods in as their removal is not necessary for this bugfix.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1355153/+subscriptions
Follow ups
References