The Problem
Recently, I was checking my CD server logs for an issue that was reported and stumbled across some log entries which mentioned about index update jobs getting triggered as in snapshot below-
This made me think that should these jobs actually get triggered from CDs??
The answer is NO!
Why?? Because web indexes already get updated from CM servers during item publish events etc. (if the indexes are already maintained by the CM instance). Doing the same from CD servers is redundant and increasing unwanted load of index update jobs on CD servers. Also, CD servers are only supposed to READ from indexes and not WRITE to them (in most cases)
Then why are these jobs getting created?
<index id="myCustom_web_index" type="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider" patch:source="MyProject.Sitecore.ContentSearch.Solr.Index.Web.config">
<param desc="name">$(id)</param>
<param desc="core">$(id)</param>
<param desc="rebuildcore">$(id)_sec</param>
...
<strategies hint="list:AddStrategy">
<strategy ref = "contentSearch/indexConfigurations/indexUpdateStrategies/onPublishEndAsync"/>
<strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/remoteRebuild"/>
</strategies>
To:
<index id="myCustom_web_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider" patch:source="MyProject.Sitecore.ContentSearch.Solr.Index.Web.config">
<param desc="name">$(id)</param>
<param desc="core">$(id)</param>
...
<strategies hint="list:AddStrategy">
<strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/manual"/>
</strategies>
Using the settings above allows that no index update is performed by the CD instances.
Hope it helps you, thanks for reading!!