diff --git a/manila/db/sqlalchemy/models.py b/manila/db/sqlalchemy/models.py index 7577a0e51a..f1c0f97471 100644 --- a/manila/db/sqlalchemy/models.py +++ b/manila/db/sqlalchemy/models.py @@ -318,7 +318,7 @@ class Share(BASE, ManilaBase): task_state = Column(String(255)) instances = orm.relationship( "ShareInstance", - lazy='immediate', + lazy='subquery', primaryjoin=( 'and_(' 'Share.id == ShareInstance.share_id, ' @@ -388,7 +388,7 @@ class ShareInstance(BASE, ManilaBase): nullable=True) _availability_zone = orm.relationship( "AvailabilityZone", - lazy='immediate', + lazy='subquery', foreign_keys=availability_zone_id, primaryjoin=( 'and_(' @@ -415,7 +415,7 @@ class ShareInstance(BASE, ManilaBase): nullable=True) share_type = orm.relationship( "ShareTypes", - lazy='immediate', + lazy='subquery', foreign_keys=share_type_id, primaryjoin='and_(' 'ShareInstance.share_type_id == ShareTypes.id, ' diff --git a/releasenotes/notes/bug-1859785-share-list-speed-6b09e7717624e037.yaml b/releasenotes/notes/bug-1859785-share-list-speed-6b09e7717624e037.yaml new file mode 100644 index 0000000000..d9d6739cc2 --- /dev/null +++ b/releasenotes/notes/bug-1859785-share-list-speed-6b09e7717624e037.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + Improved share list speed using lazy='subquery'. The sqlalchemy models of + Share and Share Instance relationships previously had lazy='immediate'. + This resulted in at least three extra queries when we queried for all share + details.