<?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: I/O models: how you move your data matters</title>
	<atom:link href="http://timetobleed.com/io-models-how-you-move-your-data-matters/feed/" rel="self" type="application/rss+xml" />
	<link>http://timetobleed.com/io-models-how-you-move-your-data-matters/</link>
	<description>technical ramblings from a wanna-be unix dinosaur</description>
	<lastBuildDate>Wed, 21 Jul 2010 07:31:26 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Mike Ryan</title>
		<link>http://timetobleed.com/io-models-how-you-move-your-data-matters/comment-page-1/#comment-242</link>
		<dc:creator>Mike Ryan</dc:creator>
		<pubDate>Mon, 27 Apr 2009 13:50:49 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=98#comment-242</guid>
		<description>Synchronous blocking IO is GREAT when you have a lot of file descriptors to perform IO on. The key is to use a polling mechanism such as select or poll. You put all your FDs in non-blocking mode and poll a list of them using one of those system calls. Your application will then block until any one of them is ready to be read or written.&lt;br&gt;&lt;br&gt;This is the model used in many high-performance, high-throughput servers. At one point, it was even the default model used in Apache (still exists in mpm-event). I would hardly consider it something &quot;to be avoided at all costs&quot;!</description>
		<content:encoded><![CDATA[<p>Synchronous blocking IO is GREAT when you have a lot of file descriptors to perform IO on. The key is to use a polling mechanism such as select or poll. You put all your FDs in non-blocking mode and poll a list of them using one of those system calls. Your application will then block until any one of them is ready to be read or written.</p>
<p>This is the model used in many high-performance, high-throughput servers. At one point, it was even the default model used in Apache (still exists in mpm-event). I would hardly consider it something &#8220;to be avoided at all costs&#8221;!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Ryan</title>
		<link>http://timetobleed.com/io-models-how-you-move-your-data-matters/comment-page-1/#comment-88</link>
		<dc:creator>Mike Ryan</dc:creator>
		<pubDate>Wed, 29 Oct 2008 03:51:16 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=98#comment-88</guid>
		<description>Wow, remind me to drink my coffee before replying next time. At 10 am no less..</description>
		<content:encoded><![CDATA[<p>Wow, remind me to drink my coffee before replying next time. At 10 am no less..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: joe</title>
		<link>http://timetobleed.com/io-models-how-you-move-your-data-matters/comment-page-1/#comment-87</link>
		<dc:creator>joe</dc:creator>
		<pubDate>Tue, 28 Oct 2008 17:32:35 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=98#comment-87</guid>
		<description>@Steve -- that isn&#039;t asynchronous because you don&#039;t receive asynchronous notifications. Doing select()&#039;s with a zero timeout is like synchronous non-blocking I/O.

@mike -- ???? The model you describe is not synchronous blocking -- it is asynchronous non-blocking which I actually recommended.

Thanks for reading guys.</description>
		<content:encoded><![CDATA[<p>@Steve &#8212; that isn&#8217;t asynchronous because you don&#8217;t receive asynchronous notifications. Doing select()&#8217;s with a zero timeout is like synchronous non-blocking I/O.</p>
<p>@mike &#8212; ???? The model you describe is not synchronous blocking &#8212; it is asynchronous non-blocking which I actually recommended.</p>
<p>Thanks for reading guys.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Ryan</title>
		<link>http://timetobleed.com/io-models-how-you-move-your-data-matters/comment-page-1/#comment-86</link>
		<dc:creator>Mike Ryan</dc:creator>
		<pubDate>Tue, 28 Oct 2008 15:03:26 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=98#comment-86</guid>
		<description>Synchronous blocking IO is GREAT when you have a lot of file descriptors to perform IO on. The key is to use a polling mechanism such as select or poll. You put all your FDs in non-blocking mode and poll a list of them using one of those system calls. Your application will then block until any one of them is ready to be read or written.

This is the model used in many high-performance, high-throughput servers. At one point, it was even the default model used in Apache (still exists in mpm-event). I would hardly consider it something &quot;to be avoided at all costs&quot;!</description>
		<content:encoded><![CDATA[<p>Synchronous blocking IO is GREAT when you have a lot of file descriptors to perform IO on. The key is to use a polling mechanism such as select or poll. You put all your FDs in non-blocking mode and poll a list of them using one of those system calls. Your application will then block until any one of them is ready to be read or written.</p>
<p>This is the model used in many high-performance, high-throughput servers. At one point, it was even the default model used in Apache (still exists in mpm-event). I would hardly consider it something &#8220;to be avoided at all costs&#8221;!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://timetobleed.com/io-models-how-you-move-your-data-matters/comment-page-1/#comment-85</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Tue, 28 Oct 2008 14:07:27 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=98#comment-85</guid>
		<description>What about non-blocking asynchronous I/O via select() with timeout set to zero?</description>
		<content:encoded><![CDATA[<p>What about non-blocking asynchronous I/O via select() with timeout set to zero?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
