neutron/neutron/objects
Doug Wiegley 2eb31f84c9 Fix performance regression adding rules to security groups
Sometime between liberty and pike, adding rules to SG's got
slow, and slower with every rule. Streamline the rule create path,
and get close to the old performance back.

Two performance fixes:
1. Get rid of an n^2 duplicate check, using a hash table instead,
on bulk creates. This is more memory intensive than the previous loop,
but usable far past where the other becomes too slow to be useful.
2. Use an object existence check in a few places where we do not
want to load all of the child rules.

Co-Authored-By: William Hager <whager@salesforce.com>
Change-Id: I34e41a128f28211f2e7ab814a2611ce22620fcf3
Closes-bug: 1810563
2019-01-23 18:30:54 +00:00
..
db Convert Port to OVO in db/ipam_pluggable_backend.py 2018-12-20 15:56:48 +00:00
extensions Tag mechanism supports resources with standard attribute 2017-07-25 08:14:04 +09:00
logapi [OVO] Switch to use own registry 2017-11-22 17:44:22 +01:00
plugins [OVO] Switch to use own registry 2017-11-22 17:44:22 +01:00
port Add propagate_uplink_status to port 2018-11-29 19:33:16 +00:00
qos Support fetching specific db column in OVO 2018-12-11 19:29:28 +00:00
README.rst Objects: Add README for neutron/objects directory tree 2016-10-07 15:12:20 +00:00
__init__.py Use dirname in object recursive import 2017-04-20 04:35:10 -07:00
address_scope.py [OVO] Switch to use own registry 2017-11-22 17:44:22 +01:00
agent.py use object utils from neutron-lib 2018-06-11 11:10:53 -06:00
auto_allocate.py [OVO] Switch to use own registry 2017-11-22 17:44:22 +01:00
base.py Fix performance regression adding rules to security groups 2019-01-23 18:30:54 +00:00
common_types.py Router to OVO 2017-11-24 04:11:33 +00:00
flavor.py [OVO] Switch to use own registry 2017-11-22 17:44:22 +01:00
floatingip.py Integration of Floating IP OVO 2017-12-04 19:30:02 +09:00
ipam.py [OVO] Switch to use own registry 2017-11-22 17:44:22 +01:00
l3_hamode.py [OVO] Switch to use own registry 2017-11-22 17:44:22 +01:00
l3agent.py [OVO] Switch to use own registry 2017-11-22 17:44:22 +01:00
metering.py [OVO] Switch to use own registry 2017-11-22 17:44:22 +01:00
network.py Use RBACBaseObject OVO in neutron/db/rbac_db_mixin.py 2018-11-08 13:41:36 +00:00
port_forwarding.py Add protocol to port_forwarding uniq constraint 2018-11-06 23:03:06 +08:00
ports.py Make port binding attempt after agent is revived 2018-10-22 18:43:33 +02:00
provisioning_blocks.py [OVO] Switch to use own registry 2017-11-22 17:44:22 +01:00
quota.py Allow objects to opt in new engine facade 2018-02-09 04:07:34 +00:00
rbac.py Use RBACBaseObject OVO in neutron/db/rbac_db_mixin.py 2018-11-08 13:41:36 +00:00
rbac_db.py Use RBACBaseObject OVO in neutron/db/rbac_db_mixin.py 2018-11-08 13:41:36 +00:00
router.py Use Router OVO in external_net_db 2018-02-08 14:42:29 +00:00
securitygroup.py Allow objects to opt in new engine facade 2018-02-09 04:07:34 +00:00
servicetype.py [OVO] Switch to use own registry 2017-11-22 17:44:22 +01:00
stdattrs.py Allow objects to opt in new engine facade 2018-02-09 04:07:34 +00:00
subnet.py ipam_backend_mixin: Segments model to OVO 2018-08-02 14:13:10 +07:00
subnetpool.py Allow objects to opt in new engine facade 2018-02-09 04:07:34 +00:00
tag.py Use Tag OVO in neutron/services/tag/tag_plugin.py 2018-08-29 13:00:10 +02:00
trunk.py Allow objects to opt in new engine facade 2018-02-09 04:07:34 +00:00

README.rst

Neutron Objects

Directory

This directory is designed to contain all modules which have objects definitions shipped with core Neutron. The files and directories located inside of this directory should follow the guidelines below.

Structure

The Neutron objects tree should have the following structure:

  • The expected directory structure is flat, except for the ML2 plugins. All ML2 plugin objects should fall under the plugins subdirectory (i.e. plugins/ml2/gre_allocation).
  • Module names should use singular forms for nouns (network.py, not networks.py).