Improving FireWorks performance — FireWorks 2.0.2 documentation

# Improving FireWorks performance

For the most part, you shouldn’t need to tinker with Firework’s performance. One issue you might run into is speed of querying FireWorks by their spec or workflows by a field in their metadata. This issue might also manifest itself as slow duplicate checking queries. You can add indices to certain fields of your Firework specification in order to improve query performances.

## How to add an index to a FW spec

If you are initializing the LaunchPad using Python, set the `user_indices` argument to contain an array the fields you want to index. Make sure to prefix the names with `spec`. For example, you might put `["spec.parameter1", "spec.parameter2"]`.

If you are using a `my_launchpad.yaml` file, add the array in YAML format to a key called `user_indices`. e.g., add the following:

    user_indices:
    - spec.parameter1
    - spec.parameter2

## How to add an index to Workflow metadata

If you are initializing the LaunchPad using Python, set the `wf_user_indices` argument to contain an array the fields you want to index. Make sure to prefix the names with `metadata`. For example, you might put `["metadata.parameter1", "metadata.parameter2"]`.

If you are using a `my_launchpad.yaml` file, add the array in YAML format to a key called `wf_user_indices`. e.g., add the following:

    wf_user_indices:
    - metadata.parameter1
    - metadata.parameter2

## Further performance tweaks

A few other (very minor) performance tuning parameters are available via the FW configuration, although in most cases you shouldn’t need to change these.