Browse Source

Improve share list speed using lazy='subquery'

lazy='immediate' leads to each relationship being collected when
it is accessed. This results in at least three extra queries when
we query for all share details. lazy='subquery' collects all data
when the query is executed. In this commit we only changed code for
improving the share list with details ("manila list") speed.

Change-Id: Ia61b108ece0817069737980a614cc6c15c1a3507
Closes-Bug: #1859785
Co-authored-by: Johannes Kulik <johannes.kulik@sap.com>
Co-authored-by: Maurice Escher <maurice.escher@sap.com>
(cherry picked from commit 54c5667e6b)
(cherry picked from commit f01e485578)
tags/8.1.1
Sebastian Lohff 1 year ago
committed by Goutham Pacha Ravi
parent
commit
dd35b08de1
2 changed files with 10 additions and 3 deletions
  1. +3
    -3
      manila/db/sqlalchemy/models.py
  2. +7
    -0
      releasenotes/notes/bug-1859785-share-list-speed-6b09e7717624e037.yaml

+ 3
- 3
manila/db/sqlalchemy/models.py View File

@@ -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, '


+ 7
- 0
releasenotes/notes/bug-1859785-share-list-speed-6b09e7717624e037.yaml View File

@@ -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.

Loading…
Cancel
Save