<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: MOSS Object Cache Memory Tuning is not an Intuitive Process</title>
	<atom:link href="http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/feed/" rel="self" type="application/rss+xml" />
	<link>http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/</link>
	<description>Multidisciplinary discourse on the topics of SharePoint architecture, development, and administration.</description>
	<lastBuildDate>Wed, 09 May 2012 18:27:44 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: sreeharsha</title>
		<link>http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/#comment-548</link>
		<dc:creator><![CDATA[sreeharsha]]></dc:creator>
		<pubDate>Fri, 17 Feb 2012 12:25:46 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/?p=213#comment-548</guid>
		<description><![CDATA[Thanks alot for the info Sean. This certainly helps !!]]></description>
		<content:encoded><![CDATA[<p>Thanks alot for the info Sean. This certainly helps !!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sean McDonough</title>
		<link>http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/#comment-547</link>
		<dc:creator><![CDATA[Sean McDonough]]></dc:creator>
		<pubDate>Fri, 17 Feb 2012 12:19:26 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/?p=213#comment-547</guid>
		<description><![CDATA[sreeharsha,

I believe (but I haven&#039;t confirmed) that the object cache flushes and fills based on user requests. If a user makes a request for data, that data gets retrieved and then stored by the cache. If data expires, the expiration is acted upon with the next user request that acts on that data. There isn&#039;t an &quot;active process&quot; managing the cache.

The BLOB cache is actually somewhat different. I&#039;ve dug into the internals of the BLOB cache in a previous post (http://sharepointinterface.com/2009/06/18/we-drift-deeper-into-the-sound-as-the-flush-comes/), and I can tell you with certainty that the initial population of BLOBs into the cache is driven by user request. After that, though, there is an active cache maintenance thread (in the application pool&#039;s worker process) that wakes up at regular intervals, compares change token information for the cache with that in the associated site collection, and then proactively re-fetches updated content items.

This active maintenance of the BLOB cache by a separate thread is one of the reasons why you shouldn&#039;t just delete objects out of the BLOB cache, as well. If the BLOB cache needs to be cleared across farm servers, SharePoint 2010 makes it pretty straightforward with some PowerShell (Steve Sheppard has a nice script here: http://blogs.msdn.com/b/steveshe/archive/2010/08/02/how-do-i-reset-the-disk-based-blob-cache-in-sharepoint-2010.aspx). In SharePoint 2007, flushing BLOB cache&#039;s across the farm requires either an add-in (like my CodePlex add-in: http://blobcachefarmflush.codeplex.com) or manual action (http://sharepointinterface.com/2009/10/30/manually-clearing-the-moss-2007-blob-cache/). Flushing through the object model is preferable; manual clearing should really only be a last resort.

I hope that helps!

- Sean]]></description>
		<content:encoded><![CDATA[<p>sreeharsha,</p>
<p>I believe (but I haven&#8217;t confirmed) that the object cache flushes and fills based on user requests. If a user makes a request for data, that data gets retrieved and then stored by the cache. If data expires, the expiration is acted upon with the next user request that acts on that data. There isn&#8217;t an &#8220;active process&#8221; managing the cache.</p>
<p>The BLOB cache is actually somewhat different. I&#8217;ve dug into the internals of the BLOB cache in a previous post (<a href="http://sharepointinterface.com/2009/06/18/we-drift-deeper-into-the-sound-as-the-flush-comes/" rel="nofollow">http://sharepointinterface.com/2009/06/18/we-drift-deeper-into-the-sound-as-the-flush-comes/</a>), and I can tell you with certainty that the initial population of BLOBs into the cache is driven by user request. After that, though, there is an active cache maintenance thread (in the application pool&#8217;s worker process) that wakes up at regular intervals, compares change token information for the cache with that in the associated site collection, and then proactively re-fetches updated content items.</p>
<p>This active maintenance of the BLOB cache by a separate thread is one of the reasons why you shouldn&#8217;t just delete objects out of the BLOB cache, as well. If the BLOB cache needs to be cleared across farm servers, SharePoint 2010 makes it pretty straightforward with some PowerShell (Steve Sheppard has a nice script here: <a href="http://blogs.msdn.com/b/steveshe/archive/2010/08/02/how-do-i-reset-the-disk-based-blob-cache-in-sharepoint-2010.aspx" rel="nofollow">http://blogs.msdn.com/b/steveshe/archive/2010/08/02/how-do-i-reset-the-disk-based-blob-cache-in-sharepoint-2010.aspx</a>). In SharePoint 2007, flushing BLOB cache&#8217;s across the farm requires either an add-in (like my CodePlex add-in: <a href="http://blobcachefarmflush.codeplex.com" rel="nofollow">http://blobcachefarmflush.codeplex.com</a>) or manual action (<a href="http://sharepointinterface.com/2009/10/30/manually-clearing-the-moss-2007-blob-cache/" rel="nofollow">http://sharepointinterface.com/2009/10/30/manually-clearing-the-moss-2007-blob-cache/</a>). Flushing through the object model is preferable; manual clearing should really only be a last resort.</p>
<p>I hope that helps!</p>
<p>- Sean</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sreeharsha</title>
		<link>http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/#comment-537</link>
		<dc:creator><![CDATA[sreeharsha]]></dc:creator>
		<pubDate>Wed, 08 Feb 2012 18:45:16 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/?p=213#comment-537</guid>
		<description><![CDATA[Sean,
Thanks for your time and the detailed information. A point to note , when the option &quot;Use the cached seconds for these many seconds is selected&quot; - What happens in the background during and this time.

1. Are the updated results pulled into the cache (Like wise in Blob cache) or 
2. The query hits the actual data and refills the cache?

Can you please shed some light on this.If any article of your explaining this would be of great help.

Thanks.]]></description>
		<content:encoded><![CDATA[<p>Sean,<br />
Thanks for your time and the detailed information. A point to note , when the option &#8220;Use the cached seconds for these many seconds is selected&#8221; &#8211; What happens in the background during and this time.</p>
<p>1. Are the updated results pulled into the cache (Like wise in Blob cache) or<br />
2. The query hits the actual data and refills the cache?</p>
<p>Can you please shed some light on this.If any article of your explaining this would be of great help.</p>
<p>Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sean McDonough</title>
		<link>http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/#comment-536</link>
		<dc:creator><![CDATA[Sean McDonough]]></dc:creator>
		<pubDate>Mon, 06 Feb 2012 14:11:07 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/?p=213#comment-536</guid>
		<description><![CDATA[sreeharsha,

Thanks for the feedback; I&#039;m glad that you found the article useful!

You asked about the object cache getting flushed if list data changed. The answer to that question depends on your selection for the &quot;Cross List Query Cache Changes&quot; option on the Object cache settings page (from within Site Settings for the site collection). You have two options available to you: &quot;Check the server for changes every time a cross list query runs&quot; and &quot;Use the cached result of a cross list query for this many seconds.&quot;

If the former option is selected, then a change check is made each time a query is run to determine if data is stale; if it is, then the cache is flushed and refilled. If no changes have been made, then cached data is used and better performance is obtained.

If the latter option is selected, cached data is used regardless of whether or not list item data changes have taken place. This results in the best overall performance, but it does come at the cost of some potentially stale data. 

Since the data that the object cache holds in memory isn&#039;t supposed to change that often (certain web properties like Title, navigational data if you&#039;re using something like the PortalSiteMapProvider, cross-list/cross-site query information), caching without change checks is usually deemed acceptable. The performance improvements gained outweigh the potential negatives of stale data and having to check for changes on every request. Microsoft drew this conclusion in the move from SharePoint 2007 to SharePoint 2010, as well; in 2007, the server was checked for changes every time a cross-list query was run by default. In 2010, the default is to cache cross-list results for a fixed period of time without change checks.

To your final point: yes, cache flush and fill is an expensive process. If you have absolutely no tolerance for stale data, then you really don&#039;t have any option and need to check the server for changes with each query. In the majority of the environments I&#039;ve seen, though, data turns over frequently but can survive some small amount of &quot;staleness.&quot; A cache duration of 60 seconds isn&#039;t that much to tolerate from an end-user perspective, but that amount of time can save a tremendous amount of back-end processing in environments where large numbers of queries are being run (e.g., a site with many Content Query Web Parts that are rolling up data) to display data. 

Remember: even if a user goes to edit data, they&#039;ll be going directly to the lists and libraries housing it -- and that data will be up-to-date regardless of the state of the object cache.

I hope that helps!]]></description>
		<content:encoded><![CDATA[<p>sreeharsha,</p>
<p>Thanks for the feedback; I&#8217;m glad that you found the article useful!</p>
<p>You asked about the object cache getting flushed if list data changed. The answer to that question depends on your selection for the &#8220;Cross List Query Cache Changes&#8221; option on the Object cache settings page (from within Site Settings for the site collection). You have two options available to you: &#8220;Check the server for changes every time a cross list query runs&#8221; and &#8220;Use the cached result of a cross list query for this many seconds.&#8221;</p>
<p>If the former option is selected, then a change check is made each time a query is run to determine if data is stale; if it is, then the cache is flushed and refilled. If no changes have been made, then cached data is used and better performance is obtained.</p>
<p>If the latter option is selected, cached data is used regardless of whether or not list item data changes have taken place. This results in the best overall performance, but it does come at the cost of some potentially stale data. </p>
<p>Since the data that the object cache holds in memory isn&#8217;t supposed to change that often (certain web properties like Title, navigational data if you&#8217;re using something like the PortalSiteMapProvider, cross-list/cross-site query information), caching without change checks is usually deemed acceptable. The performance improvements gained outweigh the potential negatives of stale data and having to check for changes on every request. Microsoft drew this conclusion in the move from SharePoint 2007 to SharePoint 2010, as well; in 2007, the server was checked for changes every time a cross-list query was run by default. In 2010, the default is to cache cross-list results for a fixed period of time without change checks.</p>
<p>To your final point: yes, cache flush and fill is an expensive process. If you have absolutely no tolerance for stale data, then you really don&#8217;t have any option and need to check the server for changes with each query. In the majority of the environments I&#8217;ve seen, though, data turns over frequently but can survive some small amount of &#8220;staleness.&#8221; A cache duration of 60 seconds isn&#8217;t that much to tolerate from an end-user perspective, but that amount of time can save a tremendous amount of back-end processing in environments where large numbers of queries are being run (e.g., a site with many Content Query Web Parts that are rolling up data) to display data. </p>
<p>Remember: even if a user goes to edit data, they&#8217;ll be going directly to the lists and libraries housing it &#8212; and that data will be up-to-date regardless of the state of the object cache.</p>
<p>I hope that helps!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sreeharsha</title>
		<link>http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/#comment-531</link>
		<dc:creator><![CDATA[sreeharsha]]></dc:creator>
		<pubDate>Mon, 30 Jan 2012 05:45:37 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/?p=213#comment-531</guid>
		<description><![CDATA[Sean, the article is excellent and informative. seldom we find such a detailed and proficient content. Well on the same line, at on of our client&#039;s sharepoint farms surprisingly cache hasnt been enabled. And i am through a process of understanding the pros and cons of different caching techniques. your article certainly adds a resource to my ambit. 

I also looked at the Blob cache technique. Blob cache and object looks to be a solution to over come the problem of dead slow applications here. A couple of questions below....

But i would like to know if there are any contraints or points to be noted( which might drive me back home) if both Blob cache and object cache are implemented. 

Object cache refers to the queries (most of the times). So what if the list data is changed. Does the Cache get flushed and filled( irrespective of the Cache expiry time).

A point noted from the above article.. Cache flush, fill and serve is a costly operation. So if the list which gets frequently updated is cache enabled - sounds like an adverse effect. Can you throw some light on this. 

Thanks]]></description>
		<content:encoded><![CDATA[<p>Sean, the article is excellent and informative. seldom we find such a detailed and proficient content. Well on the same line, at on of our client&#8217;s sharepoint farms surprisingly cache hasnt been enabled. And i am through a process of understanding the pros and cons of different caching techniques. your article certainly adds a resource to my ambit. </p>
<p>I also looked at the Blob cache technique. Blob cache and object looks to be a solution to over come the problem of dead slow applications here. A couple of questions below&#8230;.</p>
<p>But i would like to know if there are any contraints or points to be noted( which might drive me back home) if both Blob cache and object cache are implemented. </p>
<p>Object cache refers to the queries (most of the times). So what if the list data is changed. Does the Cache get flushed and filled( irrespective of the Cache expiry time).</p>
<p>A point noted from the above article.. Cache flush, fill and serve is a costly operation. So if the list which gets frequently updated is cache enabled &#8211; sounds like an adverse effect. Can you throw some light on this. </p>
<p>Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Make SharePoint fly, Part 1 &#171; Bernd&#039;s blog</title>
		<link>http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/#comment-365</link>
		<dc:creator><![CDATA[Make SharePoint fly, Part 1 &#171; Bernd&#039;s blog]]></dc:creator>
		<pubDate>Wed, 09 Mar 2011 17:33:21 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/?p=213#comment-365</guid>
		<description><![CDATA[[...] to make sure that it works efficiently. This is not a trivial task. You can find more information here. The bottom line is that you should monitor the ‘SharePoint Publishing Cache’ performance [...]]]></description>
		<content:encoded><![CDATA[<p>[...] to make sure that it works efficiently. This is not a trivial task. You can find more information here. The bottom line is that you should monitor the ‘SharePoint Publishing Cache’ performance [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sean McDonough</title>
		<link>http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/#comment-322</link>
		<dc:creator><![CDATA[Sean McDonough]]></dc:creator>
		<pubDate>Tue, 14 Dec 2010 23:40:49 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/?p=213#comment-322</guid>
		<description><![CDATA[Good question, Nariman.  I don&#039;t have a definitive answer for you, and I&#039;ll be up front and say that it&#039;s been quite a while since I&#039;ve played with these counters.  Having said that, I&#039;ll hazard some guesses.

I&#039;ll start by admitting that I&#039;ve never seen the &#039;[ACL]#1&#039; and &#039;#1&#039; instances you mentioned.  My understanding is that the difference between the address-only counter set and the address + [ACL] set involves security and whether or not the counter values factor it in.  If you have another &quot;set&quot; of counter instances (in your case, the ones including a &#039;#1&#039;), perhaps your Web app is extended to additional zones (resulting in additional IIS sites) or makes use of different authentication providers and/or FBA?  That question/suggestion is purely extrapolation and guesswork on my part.

When I was doing my earlier troubleshooting work (when the article was written), I know that it was clear to me after some monitoring which set of counters I should be watching.  One counter set reflected very little traffic and/or activity, and the other column showed a tremendous amount.

I would guess that where you should look will be a function of how traffic comes into your site collection -- or more specifically, through which Web application in your environment the requests are arriving (through one zone? through many zones?)  The specific zone you should watch isn&#039;t a question I can answer, but if you see cache compactions anywhere, you should be watching closely.  In my experience, cache compactions tend not to occur frequently if they occur at all.

It&#039;s also worth mentioning that things appear to have changed a bit with SharePoint 2010.  In my SP2010 farm, each of the Web app-specific counter columns contains no data -- just dashes (&quot;---&quot;).  All of the publishing counters roll-up under the &quot;_Total&quot; column.  Admittedly, my (home) SP2010 environment doesn&#039;t see a lot of traffic.  Perhaps my environment is underutilizing some capabilties or isn&#039;t configured optimally, but I hope that what I&#039;m seeing is a sign that it&#039;s easier to read and interpret counter values with SP2010.  

It&#039;s not much, but I hope it helps!]]></description>
		<content:encoded><![CDATA[<p>Good question, Nariman.  I don&#8217;t have a definitive answer for you, and I&#8217;ll be up front and say that it&#8217;s been quite a while since I&#8217;ve played with these counters.  Having said that, I&#8217;ll hazard some guesses.</p>
<p>I&#8217;ll start by admitting that I&#8217;ve never seen the &#8216;[ACL]#1&#8242; and &#8216;#1&#8242; instances you mentioned.  My understanding is that the difference between the address-only counter set and the address + [ACL] set involves security and whether or not the counter values factor it in.  If you have another &#8220;set&#8221; of counter instances (in your case, the ones including a &#8216;#1&#8242;), perhaps your Web app is extended to additional zones (resulting in additional IIS sites) or makes use of different authentication providers and/or FBA?  That question/suggestion is purely extrapolation and guesswork on my part.</p>
<p>When I was doing my earlier troubleshooting work (when the article was written), I know that it was clear to me after some monitoring which set of counters I should be watching.  One counter set reflected very little traffic and/or activity, and the other column showed a tremendous amount.</p>
<p>I would guess that where you should look will be a function of how traffic comes into your site collection &#8212; or more specifically, through which Web application in your environment the requests are arriving (through one zone? through many zones?)  The specific zone you should watch isn&#8217;t a question I can answer, but if you see cache compactions anywhere, you should be watching closely.  In my experience, cache compactions tend not to occur frequently if they occur at all.</p>
<p>It&#8217;s also worth mentioning that things appear to have changed a bit with SharePoint 2010.  In my SP2010 farm, each of the Web app-specific counter columns contains no data &#8212; just dashes (&#8220;&#8212;&#8221;).  All of the publishing counters roll-up under the &#8220;_Total&#8221; column.  Admittedly, my (home) SP2010 environment doesn&#8217;t see a lot of traffic.  Perhaps my environment is underutilizing some capabilties or isn&#8217;t configured optimally, but I hope that what I&#8217;m seeing is a sign that it&#8217;s easier to read and interpret counter values with SP2010.  </p>
<p>It&#8217;s not much, but I hope it helps!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nariman</title>
		<link>http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/#comment-321</link>
		<dc:creator><![CDATA[Nariman]]></dc:creator>
		<pubDate>Tue, 14 Dec 2010 17:24:18 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/?p=213#comment-321</guid>
		<description><![CDATA[Great material, you don&#039;t see too many posts with this level of detail for SharePoint. For each site collection, I&#039;m seeing 4 counters, a pattern along the lines of:

- the address itself
- the address itself + &#039;[ACL]&#039; appended
- the address lower-cased + &#039;[ACL]#1&#039; appended
- the address lower-cased + &#039;#1&#039; appended

All of them are registering slightly different values, which one is the authority?]]></description>
		<content:encoded><![CDATA[<p>Great material, you don&#8217;t see too many posts with this level of detail for SharePoint. For each site collection, I&#8217;m seeing 4 counters, a pattern along the lines of:</p>
<p>- the address itself<br />
- the address itself + &#8216;[ACL]&#8216; appended<br />
- the address lower-cased + &#8216;[ACL]#1&#8242; appended<br />
- the address lower-cased + &#8216;#1&#8242; appended</p>
<p>All of them are registering slightly different values, which one is the authority?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Moss Object Caching &#171; Doug on SharePoint</title>
		<link>http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/#comment-42</link>
		<dc:creator><![CDATA[Moss Object Caching &#171; Doug on SharePoint]]></dc:creator>
		<pubDate>Fri, 18 Sep 2009 20:12:18 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/?p=213#comment-42</guid>
		<description><![CDATA[[...] Object&#160;Caching First I wanted to thank Sean McDonough for his blog post MOSS Object Cache Memory Tuning is not an Intuitive Process it assisted a great deal with a stability problem we were having with a publishing [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Object&nbsp;Caching First I wanted to thank Sean McDonough for his blog post MOSS Object Cache Memory Tuning is not an Intuitive Process it assisted a great deal with a stability problem we were having with a publishing [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Twitter Trackbacks for MOSS Object Cache Memory Tuning is not an Intuitive Process « SharePoint Interface [sharepointinterface.com] on Topsy.com</title>
		<link>http://sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process/#comment-41</link>
		<dc:creator><![CDATA[Twitter Trackbacks for MOSS Object Cache Memory Tuning is not an Intuitive Process « SharePoint Interface [sharepointinterface.com] on Topsy.com]]></dc:creator>
		<pubDate>Tue, 01 Sep 2009 08:40:26 +0000</pubDate>
		<guid isPermaLink="false">http://sharepointinterface.wordpress.com/?p=213#comment-41</guid>
		<description><![CDATA[[...] MOSS Object Cache Memory Tuning is not an Intuitive Process « SharePoint Interface  sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process &#8211; view page &#8211; cached  #RSS 2.0 SharePoint Interface » MOSS Object Cache Memory Tuning is not an Intuitive Process Comments Feed SharePoint Interface Beginning at the SharePoint Interface RPO and RTO: Prerequisites for Informed SharePoint Disaster Recovery Planning &#8212; From the page [...]]]></description>
		<content:encoded><![CDATA[<p>[...] MOSS Object Cache Memory Tuning is not an Intuitive Process « SharePoint Interface  sharepointinterface.com/2009/08/30/moss-object-cache-memory-tuning-is-not-an-intuitive-process &ndash; view page &ndash; cached  #RSS 2.0 SharePoint Interface » MOSS Object Cache Memory Tuning is not an Intuitive Process Comments Feed SharePoint Interface Beginning at the SharePoint Interface RPO and RTO: Prerequisites for Informed SharePoint Disaster Recovery Planning &mdash; From the page [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

