Faster metadata comparisons for large Salesforce orgs
Gwilym Kuiper on June 18th 2020
One of Gearset's core functions (that our users love 🤩 ) is to give you full insight into all of the changes you and your team have made to your Salesforce environments. With its line-by-line diff viewer showing granular detail, Gearset's comparison tooling helps you to understand exactly what's changed in your source environment compared to your deployment target.
Gearset is able to show you the exact differences and current status of your orgs by retrieving your metadata from the Salesforce Metadata API. To boost retrieval times from the API, particularly for larger orgs, we've developed a smart new workflow under Gearset's hood that makes use of cached comparisons you've run against the same org in the past. If you're comparing new changes against a big old Salesforce org, our metadata retrievals based on cached comparisons should now save you lots of time.
Smart caching of previous comparisons
After you've logged into Gearset and selected which source and target environments you want to compare, Gearset fetches your metadata in batches from the Salesforce Metadata API. We show you this metadata retrieval process in the Comparison in progress screen while it's being run:
To save you time waiting, Gearset makes clever use of cached metadata from your previous comparison, which reduces the time it takes for the retrieval process to complete. And, as a result, we can show you the comparison results grid much faster:
So how does it work? Rather than downloading all of your metadata from the API, which can take a while for a particularly large org, Gearset first works out what's changed since the last time you ran a comparison against that org. It compares your source against cached metadata from your previous comparison, and then only downloads the metadata components that you or your team have changed. The cache gets updated each time you run a comparison. This reduces the amount of metadata Gearset needs to retrieve, making for significantly shorter download times. And, as always, you'll see the exact differences between your source and target environments.
You might now notice fewer metadata components being downloaded in the Comparison in progress screen than was usual before. That's because this page shows you the number of metadata components Gearset is downloading; it doesn't include the cached components that will also appear in the comparison results grid. More importantly, you should now see comparisons that are faster!
How much faster your downloads are will depend on the size of your org and the metadata types you're downloading. Org comparisons that have always been quick (for most of our users) should remain so. For comparisons involving metadata types that Gearset can fetch making use of metadata that's already been downloaded and cached, you're likely to see your comparisons take anything down to half of the previous time.
How to help speed up your comparisons
There are a couple of things you can do to help reduce your download times and speed up comparisons. Gearset automatically searches for the most relevant and up-to-date metadata cache (relating to the right org) to use before running each new comparison. If you frequently make small changes and run automated validations and deployments using continuous integration (CI) as part of a mature DevOps process, this should also help speed up any later manual comparisons. You should see faster metadata retrievals when you then compare manually because you'll have smaller amounts of changed metadata to fetch from the API.
You probably already know that Gearset gives you control over which metadata types to compare via different standard and custom metadata filters. If you weren't aware of Gearset's metadata filters, try using a different standard or custom filter to exclude metadata you don't need to compare.
Lastly, if possible, don't include the complex
Translations metadata types in your comparisons. In almost all circumstances, it will be much faster if you don't include profiles or translations in your selected metadata filter.
Are you saving time on your comparisons?
Have you noticed that your comparisons are now considerably faster? Why not try it out for yourself, for example with your
Report metadata, or one of the other supported metadata types. We're continually adding new metadata types to the cached comparison workflow, so do let us know how long your comparisons are taking. As always, jump into a chat with us from within the app, or just drop us an email - we'd love to hear from you!