From 4856743be9fa80c7196eb8df55cc6c32f74d201a Mon Sep 17 00:00:00 2001 From: Ann Kamyshnikova Date: Fri, 27 Feb 2015 17:06:43 +0300 Subject: [PATCH] Make listing security groups faster 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 (cherry picked from commit 5917fcff32a51e755b7bb90790cac5afd92556e8) --- neutron/db/securitygroups_db.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/neutron/db/securitygroups_db.py b/neutron/db/securitygroups_db.py index 9237cf31f26..e8fffd99ddd 100644 --- a/neutron/db/securitygroups_db.py +++ b/neutron/db/securitygroups_db.py @@ -82,7 +82,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,