From ce23d6c1d679355bafede816bca39ea1eb24073c Mon Sep 17 00:00:00 2001 From: Joe Gordon Date: Wed, 27 Feb 2013 20:59:08 +0000 Subject: Shrink size of aggregate_metadata_get_by_host sql query * Remove unnecessary secondary joins in Aggregate model. * Remove unnecessary backrefs (only needed to create bidirectional relationship) aggregate_metadata_get_by_host goes from 6 JOINS down to two JOINS. Fix bug 1133495 Change-Id: I72966fa205973ec638816b07bfdcd54f1102feb5 --- nova/db/sqlalchemy/models.py | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) (limited to 'nova/db/sqlalchemy/models.py') diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py index 95456bf98..f52d82982 100644 --- a/nova/db/sqlalchemy/models.py +++ b/nova/db/sqlalchemy/models.py @@ -841,29 +841,16 @@ class Aggregate(BASE, NovaBase): id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(255)) _hosts = relationship(AggregateHost, - lazy="joined", - secondary="aggregate_hosts", primaryjoin='and_(' - 'Aggregate.id == AggregateHost.aggregate_id,' - 'AggregateHost.deleted == 0,' - 'Aggregate.deleted == 0)', - secondaryjoin='and_(' - 'AggregateHost.aggregate_id == Aggregate.id, ' - 'AggregateHost.deleted == 0,' - 'Aggregate.deleted == 0)', - backref='aggregates') + 'Aggregate.id == AggregateHost.aggregate_id,' + 'AggregateHost.deleted == 0,' + 'Aggregate.deleted == 0)') _metadata = relationship(AggregateMetadata, - secondary="aggregate_metadata", - primaryjoin='and_(' + primaryjoin='and_(' 'Aggregate.id == AggregateMetadata.aggregate_id,' 'AggregateMetadata.deleted == 0,' - 'Aggregate.deleted == 0)', - secondaryjoin='and_(' - 'AggregateMetadata.aggregate_id == Aggregate.id, ' - 'AggregateMetadata.deleted == 0,' - 'Aggregate.deleted == 0)', - backref='aggregates') + 'Aggregate.deleted == 0)') def _extra_keys(self): return ['hosts', 'metadetails', 'availability_zone'] -- cgit