<?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: STM: Read tracking vs visibile reads.</title>
	<atom:link href="http://pveentjer.wordpress.com/2010/07/25/stm-read-tracking-vs-visibile-reads/feed/" rel="self" type="application/rss+xml" />
	<link>http://pveentjer.wordpress.com/2010/07/25/stm-read-tracking-vs-visibile-reads/</link>
	<description>Multi-threading thoughts from a single threaded mind</description>
	<lastBuildDate>Sun, 22 Jul 2012 18:14:27 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Andrew Phillips</title>
		<link>http://pveentjer.wordpress.com/2010/07/25/stm-read-tracking-vs-visibile-reads/#comment-11142</link>
		<dc:creator><![CDATA[Andrew Phillips]]></dc:creator>
		<pubDate>Mon, 26 Jul 2010 09:35:54 +0000</pubDate>
		<guid isPermaLink="false">http://pveentjer.wordpress.com/?p=544#comment-11142</guid>
		<description><![CDATA[&gt; also have implemented a non read tracking transaction 
&gt; for the beta stm, but it will fail on conflicts even 
&gt; though there are no real conflicts because it has no 
&gt; means to revalidate its readset.

Could you give an example? A read-write conflict where the value has not changed? Or..?]]></description>
		<content:encoded><![CDATA[<p>&gt; also have implemented a non read tracking transaction<br />
&gt; for the beta stm, but it will fail on conflicts even<br />
&gt; though there are no real conflicts because it has no<br />
&gt; means to revalidate its readset.</p>
<p>Could you give an example? A read-write conflict where the value has not changed? Or..?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pveentjer</title>
		<link>http://pveentjer.wordpress.com/2010/07/25/stm-read-tracking-vs-visibile-reads/#comment-11141</link>
		<dc:creator><![CDATA[pveentjer]]></dc:creator>
		<pubDate>Mon, 26 Jul 2010 07:57:52 +0000</pubDate>
		<guid isPermaLink="false">http://pveentjer.wordpress.com/?p=544#comment-11141</guid>
		<description><![CDATA[In most cases when you do visible reads, you also need some form of read tracking because when a transaction aborts/commits, it should also notify the reads from its departure. 

I don&#039;t see a visible read as a direct requirement; it is a means to a goal. In my case I use it for object recycling, retry, writeskew protection and for providing a transaction level read consistency. If object granularity is used, read tracking becomes less expensive (since less state needs to be tracked), and with a good transaction design you can come a long way (in the new betastm I use an array to store a binary search tree for reads.. so very low garbage production.. even the arrays are pooled). But.. tracking reads can be more expensive than not tracking them :)

It depends on the STM design and features needed, if it needed. I also have implemented a non read tracking transaction for the beta stm, but it will fail on conflicts even though there are no real conflicts because it has no means to revalidate its readset.]]></description>
		<content:encoded><![CDATA[<p>In most cases when you do visible reads, you also need some form of read tracking because when a transaction aborts/commits, it should also notify the reads from its departure. </p>
<p>I don&#8217;t see a visible read as a direct requirement; it is a means to a goal. In my case I use it for object recycling, retry, writeskew protection and for providing a transaction level read consistency. If object granularity is used, read tracking becomes less expensive (since less state needs to be tracked), and with a good transaction design you can come a long way (in the new betastm I use an array to store a binary search tree for reads.. so very low garbage production.. even the arrays are pooled). But.. tracking reads can be more expensive than not tracking them <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It depends on the STM design and features needed, if it needed. I also have implemented a non read tracking transaction for the beta stm, but it will fail on conflicts even though there are no real conflicts because it has no means to revalidate its readset.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Phillips</title>
		<link>http://pveentjer.wordpress.com/2010/07/25/stm-read-tracking-vs-visibile-reads/#comment-11140</link>
		<dc:creator><![CDATA[Andrew Phillips]]></dc:creator>
		<pubDate>Mon, 26 Jul 2010 07:03:13 +0000</pubDate>
		<guid isPermaLink="false">http://pveentjer.wordpress.com/?p=544#comment-11140</guid>
		<description><![CDATA[Does the &#039;visible read&#039; requirement cause any design conflicts for read tracking, e.g. does it (in your experience) make read tracking uneconomical? 

At an abstract level they would seem to be somewhat opposed - read tracking attempts to keep reads local and reduce the amount of accesses to the actual object, whilst visible reads require a &quot;link&quot; between the transaction&#039;s copy of the read varible and the actual object (so that it can track writers).]]></description>
		<content:encoded><![CDATA[<p>Does the &#8216;visible read&#8217; requirement cause any design conflicts for read tracking, e.g. does it (in your experience) make read tracking uneconomical? </p>
<p>At an abstract level they would seem to be somewhat opposed &#8211; read tracking attempts to keep reads local and reduce the amount of accesses to the actual object, whilst visible reads require a &#8220;link&#8221; between the transaction&#8217;s copy of the read varible and the actual object (so that it can track writers).</p>
]]></content:encoded>
	</item>
</channel>
</rss>
