Parallel Publishing

This new feature relies on standard .NET 4.0 Task Parallel Library to process the publish queue in parallel. The main idea is to enable the publishing engine use the server hardware capacity to its fullest. The more cores you have, the bigger the performance increase you will get.

Parallel Publishing is disabled by default, as you need to perform special assessment of your current or planned configuration before enabling it.

This new auto-include config file called Sitecore.Publishing.Parallel.config.disabled shows how you can enable parallel publishing by replacing the standard ProcessQueue processor in the publish pipeline with a new ParallelProcessQueue processor. It is an example of parallel publishing configuration. Please consult your Sitecore implementation partner before enabling this include file. Enabling this file without taking into account the specifics of your solution can have unexpected consequences. We highly recommend that you perform publishing tests with the expected load before you change this setting in the production environments.

Concurrency in parallel publishing is controlled by the Publishing.MaxDegreeOfParallelism setting. The optimal value for this setting depends on your solution and on the CPU capacity of the server that runs the publishing operations. For example, if the system architecture leverages a dedicated publishing server with plenty of CPU capacity and the database server is currently underutilized, this setting can be increased even further.
On the other hand, on solutions where publishing is run on an authoring server that is already running a high load, changing this setting to a non-default value may cause system stability issues.

Once ready to go, you can enable this feature simply by renaming its extension from .disabled to .config.

Caution: parallel publishing can dramatically increase the CPU activity on the Sitecore instance where publishing is running. Since in most customer installations publishing is running within the Authoring (CM) environment, beware this this could affect business user experience. The trade-off here is that the publish process will be completed in a shorter time. This also puts more stress on the database server. So before enabling this feature, make sure you have plenty of capacity on both servers.

Now that you are scared to enable this feature, it is worth to mention why bother enabling it :-)

Our tests showed that you can expect anything from 10x to 25x performance gain when you enable Parallel Publishing along with the optimizations from the Sitecore.Publishing.Optimizations.config.example file.

This blog post provides a more detailed walk-through on how to maximize your publishing performance with 7.2.

Good day now.
Sitecore 7.2 Dev Team

  • Can we done with sitecore 6.6? i think this is feature of Dotnet parallel programming so by change the config setting can we achieve with existing?

  • Hi Ashish,  Theoretically, but I would not recommend it, plus it would be deemed as a customization. In addition to parallelization we've added some optimizations, making publishing more lightweight, and fixing some internal issues. Upgrading to 7.2 is the right way to go.