]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Subnets should be set as lazy='join'
authorAaron Rosen <aaronorosen@gmail.com>
Wed, 26 Mar 2014 20:52:05 +0000 (13:52 -0700)
committerAaron Rosen <aaronorosen@gmail.com>
Wed, 26 Mar 2014 20:56:38 +0000 (13:56 -0700)
Currently if one does a net-list tons of queries are issued against the
database as the default query mode is 'select' which performs a query when
the field is actually accessed. In this patch I change the the mode to
'joined' so subnets are loaded as the networks are loaded. Usually, there
are only 1 or 2 subnets on a network so loading this data shouldn't hurt.
This patch in my setup with 5000 networks reduces the net-list call from 27
seconds to 7! Woot Woot :)

Change-Id: I10eec4d79b522dfd685d3d2aa93a8d643104bba7
Closes-bug: 1298053

neutron/db/models_v2.py

index 2c77ec67e1a8e705b328adecfdd5adaa62c7650f..718195f3491debd3cfa887752708d7fd1475218d 100644 (file)
@@ -199,7 +199,8 @@ class Network(model_base.BASEV2, HasId, HasTenant):
 
     name = sa.Column(sa.String(255))
     ports = orm.relationship(Port, backref='networks')
-    subnets = orm.relationship(Subnet, backref='networks')
+    subnets = orm.relationship(Subnet, backref='networks',
+                               lazy="joined")
     status = sa.Column(sa.String(16))
     admin_state_up = sa.Column(sa.Boolean)
     shared = sa.Column(sa.Boolean)