<?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: Concurrency is a Myth in Ruby</title>
	<atom:link href="http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/</link>
	<description>A goal is a dream with a deadline.</description>
	<pubDate>Mon, 15 Mar 2010 15:20:34 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Ilya Grigorik</title>
		<link>http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/comment-page-1/#comment-230767</link>
		<dc:creator>Ilya Grigorik</dc:creator>
		<pubDate>Sun, 07 Feb 2010 20:24:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=198#comment-230767</guid>
		<description>MacRuby drops the GIL as well. You might want to try their new GCD (grand central dispatch) API's as well for coordinating the work - check their blog.</description>
		<content:encoded><![CDATA[<p>MacRuby drops the GIL as well. You might want to try their new GCD (grand central dispatch) API&#8217;s as well for coordinating the work - check their blog.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 5v3n</title>
		<link>http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/comment-page-1/#comment-230755</link>
		<dc:creator>5v3n</dc:creator>
		<pubDate>Sun, 07 Feb 2010 15:18:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=198#comment-230755</guid>
		<description>Nice article - I was wondering why my multi threaded approach didn't seem to accelerate &amp; your post was very helpful to find the explanation. JRuby did the trick.

I'm going to test it with MacRuby, too - I couldn't find any hints on the concurrency behaviour yet, but my benchmarks will show.

Cheers

5v3n</description>
		<content:encoded><![CDATA[<p>Nice article - I was wondering why my multi threaded approach didn&#8217;t seem to accelerate &amp; your post was very helpful to find the explanation. JRuby did the trick.</p>
<p>I&#8217;m going to test it with MacRuby, too - I couldn&#8217;t find any hints on the concurrency behaviour yet, but my benchmarks will show.</p>
<p>Cheers</p>
<p>5v3n</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Klank Boom Klang &#187; Ruby in a multicore world</title>
		<link>http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/comment-page-1/#comment-222581</link>
		<dc:creator>Klank Boom Klang &#187; Ruby in a multicore world</dc:creator>
		<pubDate>Sun, 01 Nov 2009 01:17:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=198#comment-222581</guid>
		<description>[...] 1.9 internal threading models differ significantly, the exposed concurrency model is fundamentally the same. Unlike Ruby 1.8, Ruby 1.9 threads do map to native threads, unfortunately the 1.9 interpreter [...]</description>
		<content:encoded><![CDATA[<p>[...] 1.9 internal threading models differ significantly, the exposed concurrency model is fundamentally the same. Unlike Ruby 1.8, Ruby 1.9 threads do map to native threads, unfortunately the 1.9 interpreter [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ilya Grigorik</title>
		<link>http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/comment-page-1/#comment-201739</link>
		<dc:creator>Ilya Grigorik</dc:creator>
		<pubDate>Wed, 01 Jul 2009 02:30:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=198#comment-201739</guid>
		<description>Corbin, Rails has become 'thread-safe' as of 2.3 release. There are still a few nasty locks in the router and a few other places, but there is a lot of progress in that area.

In terms servers, Phusion Passenger is a good option to explore - no need to worry about number of workers, etc.</description>
		<content:encoded><![CDATA[<p>Corbin, Rails has become &#8216;thread-safe&#8217; as of 2.3 release. There are still a few nasty locks in the router and a few other places, but there is a lot of progress in that area.</p>
<p>In terms servers, Phusion Passenger is a good option to explore - no need to worry about number of workers, etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: corbin</title>
		<link>http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/comment-page-1/#comment-201623</link>
		<dc:creator>corbin</dc:creator>
		<pubDate>Tue, 30 Jun 2009 14:41:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=198#comment-201623</guid>
		<description>Thanks IIyan...very informative.   I was under the impression that Rails wasn't thread-safe so it blocked on every request. 
It just seems like the "other" camps have a much better server story than Ruby. 

I'd like to learn more thanks for sharing your knowledge.  Very nice article/diagrams.</description>
		<content:encoded><![CDATA[<p>Thanks IIyan&#8230;very informative.   I was under the impression that Rails wasn&#8217;t thread-safe so it blocked on every request.<br />
It just seems like the &#8220;other&#8221; camps have a much better server story than Ruby. </p>
<p>I&#8217;d like to learn more thanks for sharing your knowledge.  Very nice article/diagrams.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ilya Grigorik</title>
		<link>http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/comment-page-1/#comment-201601</link>
		<dc:creator>Ilya Grigorik</dc:creator>
		<pubDate>Tue, 30 Jun 2009 13:06:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=198#comment-201601</guid>
		<description>Yes! In fact, Twitter guys oversubscribe each core by running 2x Mongrels on each core. Check out their presentation at Velocity '09 (google for it).</description>
		<content:encoded><![CDATA[<p>Yes! In fact, Twitter guys oversubscribe each core by running 2x Mongrels on each core. Check out their presentation at Velocity &#8216;09 (google for it).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sbwoodside</title>
		<link>http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/comment-page-1/#comment-201514</link>
		<dc:creator>sbwoodside</dc:creator>
		<pubDate>Tue, 30 Jun 2009 06:49:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=198#comment-201514</guid>
		<description>That would seem to imply that I should really be running four mongrels on my quad-core system, then?</description>
		<content:encoded><![CDATA[<p>That would seem to imply that I should really be running four mongrels on my quad-core system, then?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ilya Grigorik</title>
		<link>http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/comment-page-1/#comment-201507</link>
		<dc:creator>Ilya Grigorik</dc:creator>
		<pubDate>Tue, 30 Jun 2009 06:15:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=198#comment-201507</guid>
		<description>Corbin, almost but not quiet. This really depends on a number of external factors. For example, by default Mongrel is a threaded web-server, which means that every new request is spun out into a separate thread. Beyond that, the VM takes over. If one of the requests blocks without locking the VM, then another thread will run in it's place - giving you interleaved execution. Having said that, if the request blocks the VM then the world is suspended until it returns (ex: poorly implemented gems). 

Why should you run multiple mongrels? One to guard against the case I describe above. Two, to take advantage of multi-core CPU's!</description>
		<content:encoded><![CDATA[<p>Corbin, almost but not quiet. This really depends on a number of external factors. For example, by default Mongrel is a threaded web-server, which means that every new request is spun out into a separate thread. Beyond that, the VM takes over. If one of the requests blocks without locking the VM, then another thread will run in it&#8217;s place - giving you interleaved execution. Having said that, if the request blocks the VM then the world is suspended until it returns (ex: poorly implemented gems). </p>
<p>Why should you run multiple mongrels? One to guard against the case I describe above. Two, to take advantage of multi-core CPU&#8217;s!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: corbin</title>
		<link>http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/comment-page-1/#comment-201386</link>
		<dc:creator>corbin</dc:creator>
		<pubDate>Mon, 29 Jun 2009 20:39:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=198#comment-201386</guid>
		<description>So if I understand correctly mongrels aren't going to be able to serve multiple requests per process anytime soon?  It's kind of a killer to have to start 4 mongrels just to serve 4 simultaneous web requests.  Processes are great but if we can't share any of the libraries and code like Rails each process becomes pretty hefty!</description>
		<content:encoded><![CDATA[<p>So if I understand correctly mongrels aren&#8217;t going to be able to serve multiple requests per process anytime soon?  It&#8217;s kind of a killer to have to start 4 mongrels just to serve 4 simultaneous web requests.  Processes are great but if we can&#8217;t share any of the libraries and code like Rails each process becomes pretty hefty!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MySchizoBuddy</title>
		<link>http://www.igvita.com/2008/11/13/concurrency-is-a-myth-in-ruby/comment-page-1/#comment-199703</link>
		<dc:creator>MySchizoBuddy</dc:creator>
		<pubDate>Thu, 18 Jun 2009 07:52:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.igvita.com/?p=198#comment-199703</guid>
		<description>@roger
MacRuby 0.5 is to completely replace YARV with LLVM
http://macruby.com/blog/2009/03/28/experimental-branch.html</description>
		<content:encoded><![CDATA[<p>@roger<br />
MacRuby 0.5 is to completely replace YARV with LLVM<br />
<a href="http://macruby.com/blog/2009/03/28/experimental-branch.html" rel="nofollow">http://macruby.com/blog/2009/03/28/experimental-branch.html</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
