<?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: Of MySQL/Ruby, EventMachine, and the need for non-blocking APIs</title>
	<atom:link href="http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/</link>
	<description>rewriting the rules of music online</description>
	<lastBuildDate>Wed, 30 Sep 2009 17:06:37 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Markus Jais on software development &#187; 9 websites about Ruby/EventMachine</title>
		<link>http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/comment-page-1/#comment-5013</link>
		<dc:creator>Markus Jais on software development &#187; 9 websites about Ruby/EventMachine</dc:creator>
		<pubDate>Fri, 09 Jan 2009 21:37:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=90#comment-5013</guid>
		<description>[...] Of MySQL/Ruby, EventMachine, and the need for non-blocking APIs. Great post about non-blocking APIs and why they are important. [...]</description>
		<content:encoded><![CDATA[<p>[...] Of MySQL/Ruby, EventMachine, and the need for non-blocking APIs. Great post about non-blocking APIs and why they are important. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: matthew</title>
		<link>http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/comment-page-1/#comment-5005</link>
		<dc:creator>matthew</dc:creator>
		<pubDate>Wed, 03 Sep 2008 11:14:27 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=90#comment-5005</guid>
		<description>[quote comment=&quot;&quot;]
Anyway you can also lookup mysqlplus for another ruby mysql non-blocking drivers, hopefully with good success :)
[/quote]

Aha, yes spotted this the other day. This pretty much solves the problem, great work!

(For anyone following: http://github.com/oldmoe/mysqlplus/tree/master )</description>
		<content:encoded><![CDATA[<blockquote cite="http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/#comment-">
<p>Anyway you can also lookup mysqlplus for another ruby mysql non-blocking drivers, hopefully with good success <img src='http://blog.playlouder.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
</blockquote>
<p>Aha, yes spotted this the other day. This pretty much solves the problem, great work!</p>
<p>(For anyone following: <a href="http://github.com/oldmoe/mysqlplus/tree/master" rel="nofollow">http://github.com/oldmoe/mysqlplus/tree/master</a> )</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rogerdpack</title>
		<link>http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/comment-page-1/#comment-5003</link>
		<dc:creator>rogerdpack</dc:creator>
		<pubDate>Tue, 02 Sep 2008 19:16:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=90#comment-5003</guid>
		<description>Fascinating.  I had no idea the ruby mysql drivers were non-blocking.  Nice!

Anyway you can also lookup mysqlplus for another ruby mysql non-blocking drivers, hopefully with good success :)

-=R</description>
		<content:encoded><![CDATA[<p>Fascinating.  I had no idea the ruby mysql drivers were non-blocking.  Nice!</p>
<p>Anyway you can also lookup mysqlplus for another ruby mysql non-blocking drivers, hopefully with good success <img src='http://blog.playlouder.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>-=R</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sérgio Gomes</title>
		<link>http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/comment-page-1/#comment-3814</link>
		<dc:creator>Sérgio Gomes</dc:creator>
		<pubDate>Thu, 22 May 2008 12:03:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=90#comment-3814</guid>
		<description>Hi matthew,

You&#039;re absolutely right! I just gave it a try and it nicely ran everything in parallel :)

My queries are simple (I&#039;m not even using Rails), so this is definitely the best option.

Thanks!
Sérgio</description>
		<content:encoded><![CDATA[<p>Hi matthew,</p>
<p>You&#8217;re absolutely right! I just gave it a try and it nicely ran everything in parallel <img src='http://blog.playlouder.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>My queries are simple (I&#8217;m not even using Rails), so this is definitely the best option.</p>
<p>Thanks!<br />
Sérgio</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: matthew</title>
		<link>http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/comment-page-1/#comment-3813</link>
		<dc:creator>matthew</dc:creator>
		<pubDate>Thu, 22 May 2008 11:57:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=90#comment-3813</guid>
		<description>Sergio,

If scalability/concurrency matters more than speed you could give the native Ruby MySQL API a try. I believe this is non-blocking on Ruby threads as it uses the native ruby libraries for its IO.

To do this you have to do:

  require &#039;active_record/vendor/mysql&#039;
  require &#039;activerecord&#039;

to stop activerecord loading the C-extension-based mysql gem.

This isn&#039;t ideal though, the native ruby implementation is a fair bit slower and doesn&#039;t seem to be recommended for production use. It&#039;s worked ok for us although haven&#039;t really tested it under high load yet.</description>
		<content:encoded><![CDATA[<p>Sergio,</p>
<p>If scalability/concurrency matters more than speed you could give the native Ruby MySQL API a try. I believe this is non-blocking on Ruby threads as it uses the native ruby libraries for its IO.</p>
<p>To do this you have to do:</p>
<p>  require &#8216;active_record/vendor/mysql&#8217;<br />
  require &#8216;activerecord&#8217;</p>
<p>to stop activerecord loading the C-extension-based mysql gem.</p>
<p>This isn&#8217;t ideal though, the native ruby implementation is a fair bit slower and doesn&#8217;t seem to be recommended for production use. It&#8217;s worked ok for us although haven&#8217;t really tested it under high load yet.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sérgio Gomes</title>
		<link>http://blog.playlouder.com/2008/05/12/of-mysqlruby-eventmachine-and-the-need-for-non-blocking-apis/comment-page-1/#comment-3812</link>
		<dc:creator>Sérgio Gomes</dc:creator>
		<pubDate>Thu, 22 May 2008 11:47:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.playlouder.com/?p=90#comment-3812</guid>
		<description>I&#039;m running into exactly that issue; I need to connect to several databases and query them simultaneously, and I guess the only way I could do that right now would be to have a separate *process* for each one and use IPC. Not pretty or simple...

If you do come across any solution, even if just experimental, please let me know; otherwise I&#039;ll have to implement the process option or code a python script just for that.

Cheers,
Sérgio</description>
		<content:encoded><![CDATA[<p>I&#8217;m running into exactly that issue; I need to connect to several databases and query them simultaneously, and I guess the only way I could do that right now would be to have a separate *process* for each one and use IPC. Not pretty or simple&#8230;</p>
<p>If you do come across any solution, even if just experimental, please let me know; otherwise I&#8217;ll have to implement the process option or code a python script just for that.</p>
<p>Cheers,<br />
Sérgio</p>
]]></content:encoded>
	</item>
</channel>
</rss>
