[galaxyproject/galaxy] 80a41f: Optimize public grid database interactions.
Branch: refs/heads/release_18.01 Home: https://github.com/galaxyproject/galaxy Commit: 80a41f32744d2d76b74973663cd6d751daf8e8a5 https://github.com/galaxyproject/galaxy/commit/80a41f32744d2d76b74973663cd6d... Author: John Chilton <jmchilton@gmail.com> Date: 2018-02-13 (Tue, 13 Feb 2018) Changed paths: M lib/galaxy/model/mapping.py M lib/galaxy/web/framework/helpers/grids.py M lib/galaxy/webapps/galaxy/controllers/history.py M lib/galaxy/webapps/galaxy/controllers/page.py M lib/galaxy/webapps/galaxy/controllers/visualization.py M lib/galaxy/webapps/galaxy/controllers/workflow.py Log Message: ----------- Optimize public grid database interactions. For all four grid types (histories, viz, workflows, and pages), this computes rating average on the server and prefetches any annotations. This eliminates at least two extra queries for response element in the grid. See comment in the history controller for why I am fairly confident this is a good idea for annotations but tags are less obvious - these grids still go back to the postgres server multiple times per rendered item to render tags. I'm confident we should either subqueryload, joinedload, or upgrade to sqlalchemy 2.2 and selectinload (http://docs.sqlalchemy.org/en/latest/orm/loading_relationships.html#sqlalche...) the tags as well - but I'm not sure which without being able to hack on a usegalaxy.org. This also brings in less of the user model (only username instead of all of it) to reduce over-the-wire transmission of unneeded data from postgres to Galaxy. For workflows we were LEFT OUTER JOIN-ing on the steps of the latest workflow - so we were bringing back a lot of extra rows for data that was completely unused. In light of this, it makes perfect sense to me why published workflows were the slowest of these and I suspect they will all be equally performant after this change (modulo the number of rows in the tables and the number of rows rendered). Commit: ed23cc652df321371ef6d66d32e7812406577f30 https://github.com/galaxyproject/galaxy/commit/ed23cc652df321371ef6d66d32e78... Author: Martin Cech <marten@bx.psu.edu> Date: 2018-02-13 (Tue, 13 Feb 2018) Changed paths: M lib/galaxy/model/mapping.py M lib/galaxy/web/framework/helpers/grids.py M lib/galaxy/webapps/galaxy/controllers/history.py M lib/galaxy/webapps/galaxy/controllers/page.py M lib/galaxy/webapps/galaxy/controllers/visualization.py M lib/galaxy/webapps/galaxy/controllers/workflow.py Log Message: ----------- Merge pull request #5514 from jmchilton/optimize_public_grids [18.01] Optimize public grid database interactions. Compare: https://github.com/galaxyproject/galaxy/compare/fd1ac05cdfb1...ed23cc652df3
participants (1)
-
GitHub