Thursday, September 03, 2009

Announcement: Partial (Item) Cache Clearing Module - SitecoreStager

Great news! We have released a shared source component that implements partial cache clearing model. Make sure to download the tool and read more about it. Since it is Shared Source, make sure you understand the support restrictions, etc. first before deploying the tool to production.

This tool does not substitute the Staging module as it provides cache clearing only, not file upload/download functionality.

For the implementations with frequent publish operations enabled (from workflow or single item publishes) and especially for multisite environments, this will significantly improve the performance of the delivery system and take the load off the SQL Server.

What I love about the tool is that the code is available so if there are specific architectural considerations for your implementation, you can reuse the code and implement the solution that fits your needs.

Kudos to Alexey Romaniuha for the actual implementation.

Enjoy and don’t forget to provide feedback!


Peter said...

very nice, i'm sure this will come in handy for a lot of people.


Anonymous said...

Hi Alex,

How does the item cache clearer differ from the partial clear setting on staging module? I thought that already did a partial item cache clear and full html cache clear?

- Steve Green

elenora123 said...

I think I just found out what I am looking for after spending a lot time surfing the net. I am very happy to post my comment in this blog. I gathered lot of information from this site. Nice blog.

Alex Shyba said...


This component does the cache clear in a more efficient an elegant way keeping track of what is actually changed through the history engine.
Staging module's partial cache implementation did not work for most scenarios so it is recommended to always use "Full".

Justmvb said...

For me this solution is not working, I tried a lot as suggested configuration. Currently I have 3 database core,master and web. In configuration you have suggested to add one more database(webslave). Right now I have one publish target(web) and as per your document,I have to add one more publish target(webslave) ?. I tried all but not getting done. Later on i debuged given code then found that it generates error log like "STAGER Service run cancelled due to another cleanup being run"


ManagedPoolThread #3 13:01:52 ERROR Could not update index entry. Action: 'Saved', Item: '{77F5A198-637D-4F45-B4F6-EA82A732F281}'
Exception: System.SystemException
Message: docs out of order (-89 < 0 )
Source: Lucene.Net
at Lucene.Net.Index.SegmentMerger.AppendPostings(SegmentMergeInfo[] smis, Int32 n)
at Lucene.Net.Index.SegmentMerger.MergeTermInfo(SegmentMergeInfo[] smis, Int32 n)
at Lucene.Net.Index.SegmentMerger.MergeTermInfos()
at Lucene.Net.Index.SegmentMerger.MergeTerms()
at Lucene.Net.Index.SegmentMerger.Merge()
at Lucene.Net.Index.IndexWriter.MergeSegments(Int32 minSegment, Int32 end)
at Lucene.Net.Index.IndexWriter.FlushRamSegments()
at Lucene.Net.Index.IndexWriter.Close()
at Sitecore.Search.Crawlers.DatabaseCrawler.AddItem(Item item)
at Sitecore.Search.Crawlers.DatabaseCrawler.Provider_OnUpdateItem(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at Sitecore.Data.Managers.IndexingProvider.UpdateItem(HistoryEntry entry, Database database)
at Sitecore.Data.Managers.IndexingProvider.UpdateIndex(HistoryEntry entry, Database database)

If possible kinldy provide detailed configuration guide OR solution.Thanks in advance.

Alex Shyba said...

You don't need to add another publishing target, use the one that you already have.
Please post on the Shared Source Forum, this is the place where the community can help you.
The error stack trace shows exception related to Lucene Search index. This may not be related but try rebuilding it from Control Panel anyways.