From afff58bb2f3a80f3b84dcfaed7a797fb02c06912 Mon Sep 17 00:00:00 2001 From: armando-migliaccio Date: Fri, 18 Apr 2014 12:32:26 -0700 Subject: [PATCH] gw_port should be set as lazy='join' This forces the object to be ready ahead of accessing time. The change in loading behavior is also beneficial while listing routers, as reduces the amount of queries being issued. Tests show a performance gain of 15-30% for router-list times. As Mr. Aaron Rosen is used to saying: Woot woot!! Closes-bug: #1309144 Change-Id: Ibae261b91de26ca7c50e3f6c80e9be2a799785a3 --- neutron/db/l3_db.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/neutron/db/l3_db.py b/neutron/db/l3_db.py index 947bba0b55..f56490619b 100644 --- a/neutron/db/l3_db.py +++ b/neutron/db/l3_db.py @@ -53,7 +53,7 @@ class Router(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant): status = sa.Column(sa.String(16)) admin_state_up = sa.Column(sa.Boolean) gw_port_id = sa.Column(sa.String(36), sa.ForeignKey('ports.id')) - gw_port = orm.relationship(models_v2.Port) + gw_port = orm.relationship(models_v2.Port, lazy='joined') class FloatingIP(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant):