Hello Cromwell team,
I would like to take advantage of call-caching (job avoidance). What are the exact steps?
That is correct. I am not a MySQL expert, but you can read here to learn about how to set up a MySQL database for Cromwell.
There are a couple ways that call caching can be enabled for Cromwell. The first is to modify Cromwell's default configuration file, which you will find at src/main/resources/application.conf. This config file is json-like, so you can enable call caching by adding the following stanza to the file.
enabled = true
lookup-docker-hash = false
Rather than modifying the config file in place, you can also choose to copy it, modify the copy, then specify which config file to use at runtime, like so:
java -Dconfig.file=/path/to/application.conf -jar cromwell.jar
If you just want to use call caching for a few runs and you don't want to go through the trouble of modifying the config file, you can also choose to modify the call-caching variables from the command line itself:
java -Dcall-caching.enabled=true -Dlookup-docker-hash=false -jar cromwell.jar
For more information on call caching options, you can read this section of the cromwell spec.
@KateN While I think this will technically enable call caching, results will not persist between cromwell runs, since it will be deleted at the end of a workflow run. I believe that you need to stand up a mysql instance and configure application.conf in additional ways.