]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Make listing security groups faster
authorAnn Kamyshnikova <akamyshnikova@mirantis.com>
Fri, 27 Feb 2015 14:06:43 +0000 (17:06 +0300)
committerAnn Kamyshnikova <akamyshnikova@mirantis.com>
Fri, 27 Feb 2015 14:14:29 +0000 (17:14 +0300)
If we have a large number of security groups (more than 1000) with
security group rules (about 100 for each group) listing them
could take rather long time(more than 1 minute).

Adding lazy join to backref to SecurityGroupRule model will make
it faster at list on 15%.

Change-Id: I648a48cdefe0faf75c0c62bd8adffc12547293be
Closes-bug: #1426383

neutron/db/securitygroups_db.py

index ec3f548e4c501ef4557b121bf3be756c428dc79a..658f27514ed6676bb8af6482988ebd4ffe9a39cd 100644 (file)
@@ -100,7 +100,7 @@ class SecurityGroupRule(model_base.BASEV2, models_v2.HasId,
     remote_ip_prefix = sa.Column(sa.String(255))
     security_group = orm.relationship(
         SecurityGroup,
-        backref=orm.backref('rules', cascade='all,delete'),
+        backref=orm.backref('rules', cascade='all,delete', lazy='joined'),
         primaryjoin="SecurityGroup.id==SecurityGroupRule.security_group_id")
     source_group = orm.relationship(
         SecurityGroup,