<?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 for Nate Wiger vs Software</title>
	<atom:link href="http://nateware.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://nateware.com</link>
	<description>...or how many beers until the servers work?</description>
	<lastBuildDate>Tue, 19 Apr 2011 16:35:37 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Comment on An Atomic Rant by Zack Gramana</title>
		<link>http://nateware.com/2010/02/18/an-atomic-rant/#comment-52</link>
		<dc:creator><![CDATA[Zack Gramana]]></dc:creator>
		<pubDate>Tue, 19 Apr 2011 16:35:37 +0000</pubDate>
		<guid isPermaLink="false">http://nateware.com/?p=35#comment-52</guid>
		<description><![CDATA[Excellent post. Clearly, not everyone has worked on applications that challenge typical concurrency techniques.]]></description>
		<content:encoded><![CDATA[<p>Excellent post. Clearly, not everyone has worked on applications that challenge typical concurrency techniques.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An Atomic Rant by Nate Wiger</title>
		<link>http://nateware.com/2010/02/18/an-atomic-rant/#comment-49</link>
		<dc:creator><![CDATA[Nate Wiger]]></dc:creator>
		<pubDate>Tue, 05 Apr 2011 04:35:52 +0000</pubDate>
		<guid isPermaLink="false">http://nateware.com/?p=35#comment-49</guid>
		<description><![CDATA[I hear your point, but it&#039;s not just a workaround for a bug.  I liked the bug report because it explains the real-world constraints of architecture decisions in detail.

From http://en.wikipedia.org/wiki/Lock_(computer_science)#Types

&lt;blockquote&gt;lock overhead: The extra resources for using locks, like the memory space allocated for locks, &lt;strong&gt;the CPU time to initialize and destroy locks, and the time for acquiring or releasing locks&lt;/strong&gt;. The more locks a program uses, the more overhead associated with the usage.&lt;/blockquote&gt;

I&#039;m not sure where you got the absolute statement &quot;waiting for a lock does not use any CPU&quot;.  This sounds like something a textbook or CS professor would say.  In UN*X, the &quot;wait&quot; state technically does not use CPU, but that&#039;s not the same as saying creating, maintaining, and destroying locks has no overhead.  It&#039;s just not true.]]></description>
		<content:encoded><![CDATA[<p>I hear your point, but it&#8217;s not just a workaround for a bug.  I liked the bug report because it explains the real-world constraints of architecture decisions in detail.</p>
<p>From <a href="http://en.wikipedia.org/wiki/Lock_(computer_science)#Types" rel="nofollow">http://en.wikipedia.org/wiki/Lock_(computer_science)#Types</a></p>
<blockquote><p>lock overhead: The extra resources for using locks, like the memory space allocated for locks, <strong>the CPU time to initialize and destroy locks, and the time for acquiring or releasing locks</strong>. The more locks a program uses, the more overhead associated with the usage.</p></blockquote>
<p>I&#8217;m not sure where you got the absolute statement &#8220;waiting for a lock does not use any CPU&#8221;.  This sounds like something a textbook or CS professor would say.  In UN*X, the &#8220;wait&#8221; state technically does not use CPU, but that&#8217;s not the same as saying creating, maintaining, and destroying locks has no overhead.  It&#8217;s just not true.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An Atomic Rant by dstroma</title>
		<link>http://nateware.com/2010/02/18/an-atomic-rant/#comment-48</link>
		<dc:creator><![CDATA[dstroma]]></dc:creator>
		<pubDate>Tue, 05 Apr 2011 04:21:54 +0000</pubDate>
		<guid isPermaLink="false">http://nateware.com/?p=35#comment-48</guid>
		<description><![CDATA[Interesting, but the fact that you needed to cite a bug report speaks for itself. The blog post did not mention you were using MySQL, and the fact that this whole exercise was a work-around for a bug was not mentioned either.]]></description>
		<content:encoded><![CDATA[<p>Interesting, but the fact that you needed to cite a bug report speaks for itself. The blog post did not mention you were using MySQL, and the fact that this whole exercise was a work-around for a bug was not mentioned either.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An Atomic Rant by Nate Wiger</title>
		<link>http://nateware.com/2010/02/18/an-atomic-rant/#comment-47</link>
		<dc:creator><![CDATA[Nate Wiger]]></dc:creator>
		<pubDate>Tue, 05 Apr 2011 03:39:16 +0000</pubDate>
		<guid isPermaLink="false">http://nateware.com/?p=35#comment-47</guid>
		<description><![CDATA[Not true.

http://bugs.mysql.com/bug.php?id=49047

&lt;blockquote&gt;When there are many locks on a single row in InnoDB, CPU usage will get very large due to
deadlock checking.  This is due to the fact that in this case, the complexity will grow at
exponential time.&lt;/blockquote&gt;

And http://www.mysickql.com/?p=78



&lt;blockquote&gt;What I discovered with kind of great surprise (I know Baron, it’s in your book) that some resources in MySQL uses just one Mutex semaphore, which, in high concurrency environments like web sites, can really put your monster server on its knees.&lt;/blockquote&gt;

]]></description>
		<content:encoded><![CDATA[<p>Not true.</p>
<p><a href="http://bugs.mysql.com/bug.php?id=49047" rel="nofollow">http://bugs.mysql.com/bug.php?id=49047</a></p>
<blockquote><p>When there are many locks on a single row in InnoDB, CPU usage will get very large due to<br />
deadlock checking.  This is due to the fact that in this case, the complexity will grow at<br />
exponential time.</p></blockquote>
<p>And <a href="http://www.mysickql.com/?p=78" rel="nofollow">http://www.mysickql.com/?p=78</a></p>
<blockquote><p>What I discovered with kind of great surprise (I know Baron, it’s in your book) that some resources in MySQL uses just one Mutex semaphore, which, in high concurrency environments like web sites, can really put your monster server on its knees.</p></blockquote>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An Atomic Rant by dstroma</title>
		<link>http://nateware.com/2010/02/18/an-atomic-rant/#comment-46</link>
		<dc:creator><![CDATA[dstroma]]></dc:creator>
		<pubDate>Tue, 05 Apr 2011 02:52:00 +0000</pubDate>
		<guid isPermaLink="false">http://nateware.com/?p=35#comment-46</guid>
		<description><![CDATA[Waiting for a lock does not use any CPU.]]></description>
		<content:encoded><![CDATA[<p>Waiting for a lock does not use any CPU.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An Atomic Rant by Nate Wiger</title>
		<link>http://nateware.com/2010/02/18/an-atomic-rant/#comment-23</link>
		<dc:creator><![CDATA[Nate Wiger]]></dc:creator>
		<pubDate>Sat, 20 Nov 2010 03:06:33 +0000</pubDate>
		<guid isPermaLink="false">http://nateware.com/?p=35#comment-23</guid>
		<description><![CDATA[Well, it&#039;s not like I had never heard of row-level locking.  Exceeding the DB&#039;s capacity for handling row-level locks is exactly what led to this solution.  DB locks were running a massive machine up to 100% CPU.  It may be true that many apps don&#039;t need a separate atomicity solution, but when you&#039;re running at large scale, you do.]]></description>
		<content:encoded><![CDATA[<p>Well, it&#8217;s not like I had never heard of row-level locking.  Exceeding the DB&#8217;s capacity for handling row-level locks is exactly what led to this solution.  DB locks were running a massive machine up to 100% CPU.  It may be true that many apps don&#8217;t need a separate atomicity solution, but when you&#8217;re running at large scale, you do.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An Atomic Rant by dstroma</title>
		<link>http://nateware.com/2010/02/18/an-atomic-rant/#comment-20</link>
		<dc:creator><![CDATA[dstroma]]></dc:creator>
		<pubDate>Mon, 08 Nov 2010 06:29:33 +0000</pubDate>
		<guid isPermaLink="false">http://nateware.com/?p=35#comment-20</guid>
		<description><![CDATA[This is what row-level locking was meant for. Although you cite performance concerns, the vast majority of applications do not need high row-level write concurrency. In your example, the amount of time it takes to obtain the lock, check the students counter, and commit the transaction is negligible. I don&#039;t see why you should reinvent the wheel. 

I don&#039;t think transactions getting serialized due to locks is a bad thing. Having multiple people update the same row at once is exactly what I do NOT want.]]></description>
		<content:encoded><![CDATA[<p>This is what row-level locking was meant for. Although you cite performance concerns, the vast majority of applications do not need high row-level write concurrency. In your example, the amount of time it takes to obtain the lock, check the students counter, and commit the transaction is negligible. I don&#8217;t see why you should reinvent the wheel. </p>
<p>I don&#8217;t think transactions getting serialized due to locks is a bad thing. Having multiple people update the same row at once is exactly what I do NOT want.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An Atomic Rant by Berkes</title>
		<link>http://nateware.com/2010/02/18/an-atomic-rant/#comment-11</link>
		<dc:creator><![CDATA[Berkes]]></dc:creator>
		<pubDate>Mon, 26 Jul 2010 06:37:43 +0000</pubDate>
		<guid isPermaLink="false">http://nateware.com/?p=35#comment-11</guid>
		<description><![CDATA[I don&#039;t know any popular CMS that has proper measures in place for race conditions. It is but a matter of time untill exploits are engineered that abuse race conditions to either break an app, or even break into it.
Happy to see some attention in the framework world for this. Thanks for the writeup and well thought out solution.]]></description>
		<content:encoded><![CDATA[<p>I don&#8217;t know any popular CMS that has proper measures in place for race conditions. It is but a matter of time untill exploits are engineered that abuse race conditions to either break an app, or even break into it.<br />
Happy to see some attention in the framework world for this. Thanks for the writeup and well thought out solution.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An Atomic Rant by Atomic Rant Redux &#171; Nate Wiger vs Software</title>
		<link>http://nateware.com/2010/02/18/an-atomic-rant/#comment-10</link>
		<dc:creator><![CDATA[Atomic Rant Redux &#171; Nate Wiger vs Software]]></dc:creator>
		<pubDate>Tue, 06 Jul 2010 02:39:26 +0000</pubDate>
		<guid isPermaLink="false">http://nateware.com/?p=35#comment-10</guid>
		<description><![CDATA[[...] Rant&#160;Redux by Nate Wiger on June 14, 2010   My atomic rant has gotten a ton of traffic &#8211; more than I forsaw.  Seems atomicity is a hot topic in the web [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Rant&nbsp;Redux by Nate Wiger on June 14, 2010   My atomic rant has gotten a ton of traffic &#8211; more than I forsaw.  Seems atomicity is a hot topic in the web [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on An Atomic Rant by Page not found &#171; Nate Wiger vs Software</title>
		<link>http://nateware.com/2010/02/18/an-atomic-rant/#comment-9</link>
		<dc:creator><![CDATA[Page not found &#171; Nate Wiger vs Software]]></dc:creator>
		<pubDate>Tue, 06 Jul 2010 02:39:26 +0000</pubDate>
		<guid isPermaLink="false">http://nateware.com/?p=35#comment-9</guid>
		<description><![CDATA[[...] An Atomic&#160;Rant [...]]]></description>
		<content:encoded><![CDATA[<p>[...] An Atomic&nbsp;Rant [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

