<?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/"
		>
<channel>
	<title>Comments on: What&#8217;s the deal with LightSpeed caching?</title>
	<atom:link href="http://www.mindscapehq.com/blog/index.php/2009/11/05/whats-the-deal-with-lightspeed-caching/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mindscapehq.com/blog/index.php/2009/11/05/whats-the-deal-with-lightspeed-caching/</link>
	<description>The official blog of Mindscape</description>
	<lastBuildDate>Sun, 13 May 2012 21:07:01 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: John-Daniel Trask</title>
		<link>http://www.mindscapehq.com/blog/index.php/2009/11/05/whats-the-deal-with-lightspeed-caching/comment-page-1/#comment-110319</link>
		<dc:creator>John-Daniel Trask</dc:creator>
		<pubDate>Tue, 07 Jun 2011 21:40:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.mindscape.co.nz/blog/?p=998#comment-110319</guid>
		<description>It won&#039;t be cached &lt;em&gt;by default&lt;/em&gt;. The first level caching is done at the UnitOfWork scope. If you add a cache provider (second level cache) to the LightSpeed context then they will be cached outside of your unit of work scope (so outside of your &quot;//OpenTransfers is an entity&quot; line.

So add a second level cache and you&#039;re good to go Mike.</description>
		<content:encoded><![CDATA[<p>It won&#8217;t be cached <em>by default</em>. The first level caching is done at the UnitOfWork scope. If you add a cache provider (second level cache) to the LightSpeed context then they will be cached outside of your unit of work scope (so outside of your &#8220;//OpenTransfers is an entity&#8221; line.</p>
<p>So add a second level cache and you&#8217;re good to go Mike.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Nacey</title>
		<link>http://www.mindscapehq.com/blog/index.php/2009/11/05/whats-the-deal-with-lightspeed-caching/comment-page-1/#comment-110313</link>
		<dc:creator>Mike Nacey</dc:creator>
		<pubDate>Tue, 07 Jun 2011 21:33:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.mindscape.co.nz/blog/?p=998#comment-110313</guid>
		<description>To be clear, something like:

using (var uow = _ctx.CreateUnitOfWork())
            {
                var transfers = uow.OpenTransfers;
            } // OpenTransfers is an entity. So this loads them all.

is never going to be cached? I routinely use dictionary tables that could be cached for hours.</description>
		<content:encoded><![CDATA[<p>To be clear, something like:</p>
<p>using (var uow = _ctx.CreateUnitOfWork())<br />
            {<br />
                var transfers = uow.OpenTransfers;<br />
            } // OpenTransfers is an entity. So this loads them all.</p>
<p>is never going to be cached? I routinely use dictionary tables that could be cached for hours.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Murrell</title>
		<link>http://www.mindscapehq.com/blog/index.php/2009/11/05/whats-the-deal-with-lightspeed-caching/comment-page-1/#comment-38103</link>
		<dc:creator>Aaron Murrell</dc:creator>
		<pubDate>Thu, 25 Feb 2010 16:24:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.mindscape.co.nz/blog/?p=998#comment-38103</guid>
		<description>How does the 2nd level caching infratructure deal with Unit of Work issues that could result from the UnitOfWork references (and other entity references) being propagated across Entities used in different UnitOfWork contexts?

For instance, I have a unit of work for editing a Student entity.  I pull a Category entity (reference data) from cache and associate it with the Student entity.  The UnitOfWork from my Student Entity gets propagated to my Category entity and the bidirectional object reference from Category to Student (and back) gets set.  When my form / unit of work for editing that student goes out of scope, what prevents the cached Category from keeping references around for the UnitOfWork that was used and the student object reference that ideally should be garbage collected?</description>
		<content:encoded><![CDATA[<p>How does the 2nd level caching infratructure deal with Unit of Work issues that could result from the UnitOfWork references (and other entity references) being propagated across Entities used in different UnitOfWork contexts?</p>
<p>For instance, I have a unit of work for editing a Student entity.  I pull a Category entity (reference data) from cache and associate it with the Student entity.  The UnitOfWork from my Student Entity gets propagated to my Category entity and the bidirectional object reference from Category to Student (and back) gets set.  When my form / unit of work for editing that student goes out of scope, what prevents the cached Category from keeping references around for the UnitOfWork that was used and the student object reference that ideally should be garbage collected?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John-Daniel Trask</title>
		<link>http://www.mindscapehq.com/blog/index.php/2009/11/05/whats-the-deal-with-lightspeed-caching/comment-page-1/#comment-36210</link>
		<dc:creator>John-Daniel Trask</dc:creator>
		<pubDate>Sun, 06 Dec 2009 01:30:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.mindscape.co.nz/blog/?p=998#comment-36210</guid>
		<description>Hi Dan,

About 3/4 of the way through the post I mentioned that we currently ship with a Memcached second level cache. 

Due to the pluggable nature of the second level cache it shouldn&#039;t be too difficult to plug in a Velocity provider as well.

I hope that helps.</description>
		<content:encoded><![CDATA[<p>Hi Dan,</p>
<p>About 3/4 of the way through the post I mentioned that we currently ship with a Memcached second level cache. </p>
<p>Due to the pluggable nature of the second level cache it shouldn&#8217;t be too difficult to plug in a Velocity provider as well.</p>
<p>I hope that helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Barratt</title>
		<link>http://www.mindscapehq.com/blog/index.php/2009/11/05/whats-the-deal-with-lightspeed-caching/comment-page-1/#comment-36209</link>
		<dc:creator>Dan Barratt</dc:creator>
		<pubDate>Sun, 06 Dec 2009 00:51:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.mindscape.co.nz/blog/?p=998#comment-36209</guid>
		<description>Have you thought about allowing Velocity or Memcached for the second level cache provider? Being able to cache entities across a server farm would really raise the bar.</description>
		<content:encoded><![CDATA[<p>Have you thought about allowing Velocity or Memcached for the second level cache provider? Being able to cache entities across a server farm would really raise the bar.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John-Daniel Trask</title>
		<link>http://www.mindscapehq.com/blog/index.php/2009/11/05/whats-the-deal-with-lightspeed-caching/comment-page-1/#comment-35736</link>
		<dc:creator>John-Daniel Trask</dc:creator>
		<pubDate>Mon, 09 Nov 2009 20:58:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.mindscape.co.nz/blog/?p=998#comment-35736</guid>
		<description>Hi MiddleTommy,

New objects would be in the first level cache, not in the second level cache. Of course, they won&#039;t match any results returned until they&#039;re saved so it&#039;s not &quot;caching&quot; so much as just where they live before they get saved or thrown away :-)

If I understand your second question correctly you mean &quot;if I add a comment to a contribution, don&#039;t save it, then fetch all comments, do I get all the comments including the new one that is not saved yet?&quot; then no - you do not. This is for several reasons - complexity of translating DB queries into in-memory queries, unexpected results for most users, etc.

I hope that helps answer your questions MiddleTommy - let me know if I&#039;ve missed the point of your second question or if you&#039;d like more clarification :-)</description>
		<content:encoded><![CDATA[<p>Hi MiddleTommy,</p>
<p>New objects would be in the first level cache, not in the second level cache. Of course, they won&#8217;t match any results returned until they&#8217;re saved so it&#8217;s not &#8220;caching&#8221; so much as just where they live before they get saved or thrown away :-)</p>
<p>If I understand your second question correctly you mean &#8220;if I add a comment to a contribution, don&#8217;t save it, then fetch all comments, do I get all the comments including the new one that is not saved yet?&#8221; then no &#8211; you do not. This is for several reasons &#8211; complexity of translating DB queries into in-memory queries, unexpected results for most users, etc.</p>
<p>I hope that helps answer your questions MiddleTommy &#8211; let me know if I&#8217;ve missed the point of your second question or if you&#8217;d like more clarification :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MiddleTommy</title>
		<link>http://www.mindscapehq.com/blog/index.php/2009/11/05/whats-the-deal-with-lightspeed-caching/comment-page-1/#comment-35734</link>
		<dc:creator>MiddleTommy</dc:creator>
		<pubDate>Mon, 09 Nov 2009 14:01:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.mindscape.co.nz/blog/?p=998#comment-35734</guid>
		<description>Is the cache used for new items(items not yet saved to the database)?

And when a query is run are new items returned if they match the query results?</description>
		<content:encoded><![CDATA[<p>Is the cache used for new items(items not yet saved to the database)?</p>
<p>And when a query is run are new items returned if they match the query results?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John-Daniel Trask</title>
		<link>http://www.mindscapehq.com/blog/index.php/2009/11/05/whats-the-deal-with-lightspeed-caching/comment-page-1/#comment-35715</link>
		<dc:creator>John-Daniel Trask</dc:creator>
		<pubDate>Sun, 08 Nov 2009 22:22:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.mindscape.co.nz/blog/?p=998#comment-35715</guid>
		<description>Hi Richard,

No, not currently, but we will look into this post 3.0 as it would be a nice enhancement.

Thanks for your feedback!</description>
		<content:encoded><![CDATA[<p>Hi Richard,</p>
<p>No, not currently, but we will look into this post 3.0 as it would be a nice enhancement.</p>
<p>Thanks for your feedback!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard Weaver</title>
		<link>http://www.mindscapehq.com/blog/index.php/2009/11/05/whats-the-deal-with-lightspeed-caching/comment-page-1/#comment-35714</link>
		<dc:creator>Richard Weaver</dc:creator>
		<pubDate>Sun, 08 Nov 2009 22:01:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.mindscape.co.nz/blog/?p=998#comment-35714</guid>
		<description>Is query caching (rather than just FindById) in the pipeline for 3.0?</description>
		<content:encoded><![CDATA[<p>Is query caching (rather than just FindById) in the pipeline for 3.0?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: basic (Requested URI is rejected)
Database Caching 3/19 queries in 0.012 seconds using disk: basic
Content Delivery Network via cdn.mindscapehq.com

Served from: www.mindscapehq.com @ 2012-05-21 04:53:27 -->
