)]}'
{"manila/db/sqlalchemy/models.py":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"b7486086ba28762882a57ff531a2c70dc7fe2441","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3fa7e38b_43f424d0","updated":"2020-02-13 18:55:57.000000000","message":"Should we consider replace all other lazy loadings by eager loadings? Also considering the performance impact?","commit_id":"ef6b9a0c72a0e47d7345286911a3d882ee1f1909"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"688ee7acb7c659192b726acc70c0669bd230a056","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3fa7e38b_2921c9b2","in_reply_to":"3fa7e38b_29146998","updated":"2020-02-13 21:45:04.000000000","message":"Agree, thanks for looking on this. For sure we should consider the performance when proposing new enhancements and I\u0027m ok with this fix to unblock the gate.","commit_id":"ef6b9a0c72a0e47d7345286911a3d882ee1f1909"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fd6f296f0662615e1bc20c2b9dd7c93ce56f7500","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3fa7e38b_29146998","in_reply_to":"3fa7e38b_43f424d0","updated":"2020-02-13 21:24:18.000000000","message":"Not en-masse, we should audit the others, I think inherent references like the ones in these models may have grown beyond the assumptions we made when we added them. \n\nI started looking at the queries and performance, will propose enhancements soon.","commit_id":"ef6b9a0c72a0e47d7345286911a3d882ee1f1909"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"b7486086ba28762882a57ff531a2c70dc7fe2441","unresolved":false,"context_lines":[{"line_number":939,"context_line":"                    \u0027ShareInstance.deleted \u003d\u003d \"False\")\u0027)"},{"line_number":940,"context_line":"    share_network_subnets \u003d orm.relationship("},{"line_number":941,"context_line":"        \"ShareNetworkSubnet\","},{"line_number":942,"context_line":"        lazy\u003d\u0027joined\u0027,"},{"line_number":943,"context_line":"        backref\u003dorm.backref(\u0027share_network\u0027, lazy\u003d\u0027joined\u0027),"},{"line_number":944,"context_line":"        primaryjoin\u003d\u0027and_\u0027"},{"line_number":945,"context_line":"                    \u0027(ShareNetwork.id \u003d\u003d ShareNetworkSubnet.share_network_id,\u0027"},{"line_number":946,"context_line":"                    \u0027ShareNetworkSubnet.deleted \u003d\u003d \"False\")\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_c30014b4","line":943,"range":{"start_line":942,"start_character":0,"end_line":943,"end_character":60},"updated":"2020-02-13 18:55:57.000000000","message":"1) Is there any benefit on using \u0027joined\u0027 against \u0027subquery\u0027 eager loading modes? I\u0027m asking because in [0], was choosed \u0027subquery\u0027 (eager) to replace the \u0027immediate\u0027 (lazy).\n\n[0] https://review.opendev.org/#/c/702639/","commit_id":"ef6b9a0c72a0e47d7345286911a3d882ee1f1909"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"688ee7acb7c659192b726acc70c0669bd230a056","unresolved":false,"context_lines":[{"line_number":939,"context_line":"                    \u0027ShareInstance.deleted \u003d\u003d \"False\")\u0027)"},{"line_number":940,"context_line":"    share_network_subnets \u003d orm.relationship("},{"line_number":941,"context_line":"        \"ShareNetworkSubnet\","},{"line_number":942,"context_line":"        lazy\u003d\u0027joined\u0027,"},{"line_number":943,"context_line":"        backref\u003dorm.backref(\u0027share_network\u0027, lazy\u003d\u0027joined\u0027),"},{"line_number":944,"context_line":"        primaryjoin\u003d\u0027and_\u0027"},{"line_number":945,"context_line":"                    \u0027(ShareNetwork.id \u003d\u003d ShareNetworkSubnet.share_network_id,\u0027"},{"line_number":946,"context_line":"                    \u0027ShareNetworkSubnet.deleted \u003d\u003d \"False\")\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_890b1d2b","line":943,"range":{"start_line":942,"start_character":0,"end_line":943,"end_character":60},"in_reply_to":"3fa7e38b_a956195c","updated":"2020-02-13 21:45:04.000000000","message":"Thanks for the clarifying this. May the guys from [0] have some outputs to help us on this.","commit_id":"ef6b9a0c72a0e47d7345286911a3d882ee1f1909"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fd6f296f0662615e1bc20c2b9dd7c93ce56f7500","unresolved":false,"context_lines":[{"line_number":939,"context_line":"                    \u0027ShareInstance.deleted \u003d\u003d \"False\")\u0027)"},{"line_number":940,"context_line":"    share_network_subnets \u003d orm.relationship("},{"line_number":941,"context_line":"        \"ShareNetworkSubnet\","},{"line_number":942,"context_line":"        lazy\u003d\u0027joined\u0027,"},{"line_number":943,"context_line":"        backref\u003dorm.backref(\u0027share_network\u0027, lazy\u003d\u0027joined\u0027),"},{"line_number":944,"context_line":"        primaryjoin\u003d\u0027and_\u0027"},{"line_number":945,"context_line":"                    \u0027(ShareNetwork.id \u003d\u003d ShareNetworkSubnet.share_network_id,\u0027"},{"line_number":946,"context_line":"                    \u0027ShareNetworkSubnet.deleted \u003d\u003d \"False\")\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_a956195c","line":943,"range":{"start_line":942,"start_character":0,"end_line":943,"end_character":60},"in_reply_to":"3fa7e38b_c30014b4","updated":"2020-02-13 21:24:18.000000000","message":"Depends on how big we expect these tables to become. We take a hit with each of these methods - Looking at the way the share networks are accessed, I think eager joining is what we expected to do, always - since we\u0027re seldom looking at an individual resource (network or subnet) - we\u0027re always grabbing details from both resources at each use.. \n\nI would need to perform some load/performance testing to prove one way is better than the other - in simple tests, splitting the queries (subquery) did not outperform  the \"joined\" behavior.","commit_id":"ef6b9a0c72a0e47d7345286911a3d882ee1f1909"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"99dd2143d826bb099d896d1b88a73f3f93aa9405","unresolved":false,"context_lines":[{"line_number":1221,"context_line":"    description \u003d Column(String(255))"},{"line_number":1222,"context_line":"    status \u003d Column(String(255))"},{"line_number":1223,"context_line":"    share_group \u003d orm.relationship("},{"line_number":1224,"context_line":"        ShareGroup,"},{"line_number":1225,"context_line":"        backref\u003dorm.backref(\"snapshots\", lazy\u003d\u0027joined\u0027),"},{"line_number":1226,"context_line":"        foreign_keys\u003dshare_group_id,"},{"line_number":1227,"context_line":"        primaryjoin\u003d(\u0027and_(\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_e09986ce","line":1224,"updated":"2020-02-13 17:44:12.000000000","message":"only the above","commit_id":"ef6b9a0c72a0e47d7345286911a3d882ee1f1909"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"99dd2143d826bb099d896d1b88a73f3f93aa9405","unresolved":false,"context_lines":[{"line_number":1221,"context_line":"    description \u003d Column(String(255))"},{"line_number":1222,"context_line":"    status \u003d Column(String(255))"},{"line_number":1223,"context_line":"    share_group \u003d orm.relationship("},{"line_number":1224,"context_line":"        ShareGroup,"},{"line_number":1225,"context_line":"        backref\u003dorm.backref(\"snapshots\", lazy\u003d\u0027joined\u0027),"},{"line_number":1226,"context_line":"        foreign_keys\u003dshare_group_id,"},{"line_number":1227,"context_line":"        primaryjoin\u003d(\u0027and_(\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_40d89a7e","line":1224,"updated":"2020-02-13 17:44:12.000000000","message":"there is no need for the lazy parameter here as you\u0027ve done in [1]? \n[1] https://review.opendev.org/#/c/707282/6/manila/db/sqlalchemy/models.py@942","commit_id":"ef6b9a0c72a0e47d7345286911a3d882ee1f1909"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"47532a53a6302b265443aad809e8270c040858b4","unresolved":false,"context_lines":[{"line_number":1221,"context_line":"    description \u003d Column(String(255))"},{"line_number":1222,"context_line":"    status \u003d Column(String(255))"},{"line_number":1223,"context_line":"    share_group \u003d orm.relationship("},{"line_number":1224,"context_line":"        ShareGroup,"},{"line_number":1225,"context_line":"        backref\u003dorm.backref(\"snapshots\", lazy\u003d\u0027joined\u0027),"},{"line_number":1226,"context_line":"        foreign_keys\u003dshare_group_id,"},{"line_number":1227,"context_line":"        primaryjoin\u003d(\u0027and_(\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_af1cd964","line":1224,"in_reply_to":"3fa7e38b_c9c27502","updated":"2020-02-13 22:59:52.000000000","message":"Oh, alright. Thanks for explaining.","commit_id":"ef6b9a0c72a0e47d7345286911a3d882ee1f1909"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fd6f296f0662615e1bc20c2b9dd7c93ce56f7500","unresolved":false,"context_lines":[{"line_number":1221,"context_line":"    description \u003d Column(String(255))"},{"line_number":1222,"context_line":"    status \u003d Column(String(255))"},{"line_number":1223,"context_line":"    share_group \u003d orm.relationship("},{"line_number":1224,"context_line":"        ShareGroup,"},{"line_number":1225,"context_line":"        backref\u003dorm.backref(\"snapshots\", lazy\u003d\u0027joined\u0027),"},{"line_number":1226,"context_line":"        foreign_keys\u003dshare_group_id,"},{"line_number":1227,"context_line":"        primaryjoin\u003d(\u0027and_(\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_c9c27502","line":1224,"in_reply_to":"3fa7e38b_e09986ce","updated":"2020-02-13 21:24:18.000000000","message":"It appears that we don\u0027t always need the snapshots when we retrieve a share group object. We might be okay making a round trip to the database when accessing snapshots. That\u0027s why I removed the eager loading from earlier reviews.","commit_id":"ef6b9a0c72a0e47d7345286911a3d882ee1f1909"}]}
