Commit Graph
20621 Commits
Author SHA1 Message Date
John Chilton a190b69e33 Optimize tools that produce multiple outputs.
Fetch HIDs for these datasets all at once and flush once for all assignments. Creating jobs from 4 threads each job producing 10 outputs - this resulted in reducing the runtime of this portion of the code by 90% and saving around 20 seconds per job.

Before:

galaxy.tools.actions INFO 2015-11-30 15:53:46,235 Add outputs to history (22494.829 ms)
galaxy.tools.actions INFO 2015-11-30 15:53:47,295 Add outputs to history (22239.062 ms)
galaxy.tools.actions INFO 2015-11-30 15:53:48,320 Add outputs to history (23781.079 ms)
galaxy.tools.actions INFO 2015-11-30 15:53:51,490 Add outputs to history (21820.567 ms)
galaxy.tools.actions INFO 2015-11-30 15:54:24,506 Add outputs to history (25353.837 ms)

After:

galaxy.tools.actions INFO 2015-11-30 16:08:47,640 Add outputs to history (2781.675 ms)
galaxy.tools.actions INFO 2015-11-30 16:08:47,860 Add outputs to history (3177.738 ms)
galaxy.tools.actions INFO 2015-11-30 16:08:48,776 Add outputs to history (2425.528 ms)
galaxy.tools.actions INFO 2015-11-30 16:09:02,942 Add outputs to history (2579.022 ms)
2015-12-03 10:16:12 +00:00
John Chilton 64b7cc9fef Add sample tool that creates 10 outputs. 2015-12-03 10:16:12 +00:00
John Chilton 41d3dc62f7 Parallelize executing tool parameter combinations.
Should work when mapping over collections or for big muli-run tool submissions.

Because of database tension with sqlalchemy it is not strictly a linear increase, but the end user walltime experience for a 24 dataset collection being submitted using 4 threads instead 1 drops execution time from 68 seconds to 35.

Rebased with fixes thanks to @nsoranzo - https://github.com/jmchilton/galaxy/commit/7f6514a21222ea787a0676764e4a4fe825891b27#commitcomment-14712999.
2015-12-03 10:16:12 +00:00
John Chilton 876c28f88d Add more job timers. 2015-12-03 10:15:41 +00:00
John Chilton 299fbe99d7 Micro optimization, only fetch tool validation once per multi-run. 2015-12-03 10:15:11 +00:00
John Chilton dd7bddcaa6 Optimize initial queueing of jobs.
- Don't refresh job when this is the only thread fetching it.
 - Avoid a bunch of unnecessary flushes, just flush once essentially during process.

Brings this process from taking over 1 second per job on average on sqlite for cat1 on my laptop to around 400 ms on average.
2015-12-03 10:15:11 +00:00
John Chilton dd5f3aec52 Fix workflow extraction test cases broken with 77ed5681f8 2015-12-03 09:55:45 +00:00
chambm 97415de3ce Move idpDB and MzSQlite formats from proteomics.py to binary.py, because the SQLite sniffer lives there, and more specialized formats must be registered for sniffing before the generic format
Add proper idpDB sniffing logic (akin to MzSQlite) and test case
Add H5 sniffing based on magic number and test case
Add SQLite/IdpDB/MzSQlite/GeminiSQLite and H5 to default datatypes in registry.py
2015-12-02 18:27:33 -06:00
carlfeberhard 963d8637e8 Webpack: remove cruft galaxy.tools.js and (remnants of) galaxy.workflows.js 2015-12-02 15:41:48 -05:00
Daniel Blankenberg 30b13bb1d6 Merge pull request #1203 from gregvonkuster/release_15.10
[15.10] Fix ScIdx sniff method to handle first line comment
2015-12-02 15:32:05 -05:00
carlfeberhard cfdbf8c0e7 Testing, webpack: correct name of Galaxy module in qunit, properly call require, pass GalaxyApp data 2015-12-02 12:49:02 -05:00
carlfeberhard 002bc6b40a (merge dev) 2015-12-02 12:00:51 -05:00
Greg Von Kuster c04b3a5bb5 Re-add egg imports 2015-12-02 09:26:36 -05:00
Greg Von Kuster 51cd41be94 Fix ScIdx sniff method to handle first line comment 2015-12-02 09:24:04 -05:00
Martin Cech ffb3de9ede Merge pull request #1153 from jmchilton/collection_type_source
Implement type_source on output collections.
2015-12-02 00:14:08 -05:00
John Chilton 67c98f54ca Merge pull request #1200 from nsoranzo/tool_shed_fixes
Tool shed fixes.
2015-12-01 23:51:47 -05:00
John Chilton 48340b5829 Add TODO items to workflow progress unit tests. 2015-12-01 23:44:26 +00:00
John Chilton 07c3d10f31 Extend workflow recovery progress test case to include replacement check. 2015-12-01 23:44:26 +00:00
John Chilton 7974c1f334 Add unit tests for workflow progress initialization. 2015-12-01 23:44:26 +00:00
John Chilton cf367ff0c7 Add another workflow progress test case.
This one for replacing a tool input with an input dataset.
2015-12-01 23:44:26 +00:00
John Chilton 8a01b42112 Refactor input_by_connections_name logic into model.
Continue to delay calculation of this but auto-compute it if requested and module injection code hasn't been called explicitly. Moves logic internal to class where it belongs also.
2015-12-01 23:44:26 +00:00
John Chilton 031a39aba8 Basic unit tests for workflow progress tracking. 2015-12-01 23:44:26 +00:00
John Chilton 21213ef70f Refactor workflow testing code to quickly bootstrap workflows. 2015-12-01 23:44:26 +00:00
John Chilton 4584a579a2 Fix interface declaration for WorkflowModule.get_state.
Implementers all take this attribute.
2015-12-01 23:44:25 +00:00
John Chilton 28501ab676 Refactor workflow manager for extension. 2015-12-01 23:44:25 +00:00
John Chilton 42778e2753 Improved error handling in workflow run code. 2015-12-01 20:17:10 +00:00
John Chilton 77ed5681f8 Extend base api workflow _run_jobs helper...
... to allow loading content from test-data files.
2015-12-01 20:17:10 +00:00
John Chilton 7ce43a0463 Refactor run_request for downstream diff improvements. 2015-12-01 20:17:10 +00:00
John Chilton ea9f4a0467 Initialize a ToolOutput.from_work_dir. 2015-12-01 20:17:09 +00:00
John Chilton f64d1597b8 Extension point for environment variables. 2015-12-01 20:17:09 +00:00
Nicola Soranzo 194d871e38 Fix Tool Shed export capsule for Mercurial >= 3.4 .
Fix the following error:
tool_shed.capsule.capsule_manager ERROR 2015-12-01 12:24:37,542 unable to find mercurial command "archive"
Traceback (most recent call last):
  File "/opt/galaxy/lib/tool_shed/capsule/capsule_manager.py", line 88, in export_repository
    work_dir )
  File "/opt/galaxy/lib/tool_shed/capsule/capsule_manager.py", line 148, in generate_repository_archive
    changeset_revision )
  File "/opt/galaxy/lib/tool_shed/util/hg_util.py", line 28, in archive_repository_revision
    options_dict = get_mercurial_default_options_dict( 'archive' )
  File "/opt/galaxy/lib/tool_shed/util/hg_util.py", line 200, in get_mercurial_default_options_dict
    raise Exception('unable to find mercurial command "%s"' % command)
Exception: unable to find mercurial command "archive"
2015-12-01 16:45:25 +00:00
Nicola Soranzo 657afa89d3 Small fixes. 2015-12-01 16:45:25 +00:00
Nicola Soranzo ff619df394 Downgrade Mercurial wheel to 3.4.2 to restore hg push of Tool Shed repositories. Fix #1183. 2015-12-01 16:45:19 +00:00
Dannon Baker 84464288b1 Merge pull request #1184 from guerler/fix_download_links_002
Filter download links, avoid warning dialog
2015-12-01 10:19:22 -05:00
Nicola Soranzo 3524476bc6 Merge branch 'master' into dev 2015-12-01 11:42:16 +00:00
Eric Rasche da2cc588e5 Merge pull request #1194 from martenson/release_15.10
[15.10] docs - deprecate TS direct hg api
2015-11-30 13:39:17 -06:00
Martin Cech 5bd898118f deprecate TS direct hg api 2015-11-30 14:35:45 -05:00
Nate Coraor 9e28f2e786 Merge branch 'release_15.10' into dev 2015-11-30 14:13:26 -05:00
John Chilton a03404c04d Merge pull request #1162 from martenson/fix-datalibs
[15.10] Fix two bugs in datalibs
v15.10
2015-11-30 13:57:15 -05:00
Martin Cech c532f6808e Merge pull request #1186 from gregvonkuster/release_15.10
[15.10] Add support for Strand-specific Coordinate Count datatype
2015-11-30 13:56:24 -05:00
Martin Cech 492fcdab9f Merge pull request #1193 from mvdbeek/gvk_ts_fixes
Add enhancements to the Galaxy repository install process
2015-11-30 13:16:06 -05:00
Dannon Baker f35bd9ae02 Merge pull request #1181 from souravsingh/rename_file
Renames reports_wsgi.ini
2015-11-30 11:49:41 -05:00
Greg Von Kuster 2829cab105 Add enhancements to the Galaxy repository install process
to cleanly handle the case described here:
https://github.com/galaxyproject/galaxy/issues/667.  Specifically, the
following scenario is now cleanly handled:

Example use case: In a toolshed I have a repository of a tool, say

package_new_gene_db_1_2_3, and in revision 1 it depends on
package_sqlite_1_0_0:

package_new_gene_db_1_2_3
package_sqlite_1_0_0

At some point in time I discover that postgres is a better solution for
my gene database, and I upload revision 2:

package_new_gene_db_1_2_3
package_postgres__2_0_0

And I remove the dependecy of sqlite.  If I go to my galaxy instance and
I remove revision 1 and install revision 2, the installation is cleanly
handled with theis PR.

It should be noted that this enhancement could adversely impact
reproducibility if best practices are not followed with regard to
defining package dependencies.  Since it is now cleanly possible to
eliminate dependencies over time, best practices must be followed to
ensure that elimination of a dependency does not affect the output of a
tool that uses the underlying hierarchy of packages.
2015-11-30 17:49:11 +01:00
Dannon Baker c2f9331611 Merge pull request #1174 from jmchilton/workflow_runtime_fix
Fix interface and usage of WorkflowModule.get_runtime_inputs.
2015-11-30 10:29:48 -05:00
Dannon Baker dc41856812 Merge pull request #1173 from jmchilton/wfcfix
Fixes for WorkflowContentsManager requiring app during init.
2015-11-30 10:28:25 -05:00
Sourav Singh 9e353028d5 Updated run_reports.sh
Updated run_reports.sh to mark the latest changes.
2015-11-30 20:05:15 +05:30
Sourav Singh 8971badb10 Updated gitignore 2015-11-30 19:53:36 +05:30
Dannon Baker 1b06e8d674 Merge pull request #1126 from jgoecks/farbtastic-fix
Readd jquery.migrate to galaxy.panels template because it is needed f…
2015-11-30 09:05:33 -05:00
Greg Von Kuster 21fad8ac88 Set the column names and edit the comments section 2015-11-30 07:48:08 -05:00
Greg Von Kuster 6fdff2d2f8 Add Strand-specific Coordinate Count datatype entry to the datatypes config. 2015-11-28 14:32:12 -05:00