<?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: Playing with the new Haskell epoll event library</title>
	<atom:link href="http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/feed/" rel="self" type="application/rss+xml" />
	<link>http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/</link>
	<description>A Journal of Haskell Programming</description>
	<lastBuildDate>Mon, 03 Oct 2011 02:09:43 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: solrize</title>
		<link>http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/#comment-285</link>
		<dc:creator><![CDATA[solrize]]></dc:creator>
		<pubDate>Fri, 22 Jan 2010 06:08:20 +0000</pubDate>
		<guid isPermaLink="false">http://donsbot.wordpress.com/?p=423#comment-285</guid>
		<description><![CDATA[Btw I wonder how the timings would chance if you eliminate the sendall (just accept the connection and close the socket immediately).  I know we&#039;re in a different world when 15k connections/sec sounds slow, but a lot of the time must be in the kernel rather than in GHC concurrency.]]></description>
		<content:encoded><![CDATA[<p>Btw I wonder how the timings would chance if you eliminate the sendall (just accept the connection and close the socket immediately).  I know we&#8217;re in a different world when 15k connections/sec sounds slow, but a lot of the time must be in the kernel rather than in GHC concurrency.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: solrize</title>
		<link>http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/#comment-282</link>
		<dc:creator><![CDATA[solrize]]></dc:creator>
		<pubDate>Tue, 19 Jan 2010 22:29:18 +0000</pubDate>
		<guid isPermaLink="false">http://donsbot.wordpress.com/?p=423#comment-282</guid>
		<description><![CDATA[Don, you asked for applications other than servers that wanted such high concurrency.  One example, is a network router, e.g. a corporate firewall that handles a few thousand client connections and routes them to the internet or various VPN&#039;s depending on the endpoints.  It might even implement the VPN so it would do IPSEC or SSL (de-)encapsulation.  If it is handling a lot of VOIP traffic there could be as many as 60 packets per second per client (the frame rate of Speex is about 30 msec and it is full duplex, so 2 packets per frame).  Of course we could even want to use something like that in a data center instead of a big Cisco box, so the amount of traffic increases again.

Kernel mode Haskell anyone?  ;-)]]></description>
		<content:encoded><![CDATA[<p>Don, you asked for applications other than servers that wanted such high concurrency.  One example, is a network router, e.g. a corporate firewall that handles a few thousand client connections and routes them to the internet or various VPN&#8217;s depending on the endpoints.  It might even implement the VPN so it would do IPSEC or SSL (de-)encapsulation.  If it is handling a lot of VOIP traffic there could be as many as 60 packets per second per client (the frame rate of Speex is about 30 msec and it is full duplex, so 2 packets per frame).  Of course we could even want to use something like that in a data center instead of a big Cisco box, so the amount of traffic increases again.</p>
<p>Kernel mode Haskell anyone?  ;-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Taru Karttunen</title>
		<link>http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/#comment-280</link>
		<dc:creator><![CDATA[Taru Karttunen]]></dc:creator>
		<pubDate>Tue, 19 Jan 2010 14:54:05 +0000</pubDate>
		<guid isPermaLink="false">http://donsbot.wordpress.com/?p=423#comment-280</guid>
		<description><![CDATA[Tried to reproduce this but got quite different numbers:

The T-ended things are compiled with -threaded.

bs2 is you bytestring-example with the forkIO removed as the epoll does not forkIO either.

Linux nar.taruti.net 2.6.32-ARCH #1 SMP PREEMPT Thu Jan 7 22:28:29 CET 2010 x86_64 Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz GenuineIntel GNU/Linux
The Glorious Glasgow Haskell Compilation System, version 6.12.1

str:    Request rate: 11555.5 req/s (0.1 ms/req)
str:    Request rate: 11437.5 req/s (0.1 ms/req)
str:    Request rate: 11595.1 req/s (0.1 ms/req)
strT:   Request rate:  8480.5 req/s (0.1 ms/req)
strT:   Request rate:  8777.3 req/s (0.1 ms/req)
strT:   Request rate:  8762.9 req/s (0.1 ms/req)
bs:     Request rate: 17266.1 req/s (0.1 ms/req)
bs:     Request rate: 17349.4 req/s (0.1 ms/req)
bs:     Request rate: 17227.9 req/s (0.1 ms/req)
bsT:    Request rate: 14416.9 req/s (0.1 ms/req)
bsT:    Request rate: 13607.0 req/s (0.1 ms/req)
bsT:    Request rate: 14386.1 req/s (0.1 ms/req)
epoll:  Request rate: 16242.7 req/s (0.1 ms/req)
epoll:  Request rate: 17910.9 req/s (0.1 ms/req)
epoll:  Request rate: 16119.1 req/s (0.1 ms/req)
epollT: epollWait: interrupted (Interrupted system call) BROKEN!
bs2:    Request rate: 18584.1 req/s (0.1 ms/req)
bs2:    Request rate: 18580.1 req/s (0.1 ms/req)
bs2:    Request rate: 18753.0 req/s (0.1 ms/req)
bs2T:   Request rate: 17244.9 req/s (0.1 ms/req)
bs2T:   Request rate: 16940.1 req/s (0.1 ms/req)
bs2T:   Request rate: 16890.5 req/s (0.1 ms/req)]]></description>
		<content:encoded><![CDATA[<p>Tried to reproduce this but got quite different numbers:</p>
<p>The T-ended things are compiled with -threaded.</p>
<p>bs2 is you bytestring-example with the forkIO removed as the epoll does not forkIO either.</p>
<p>Linux nar.taruti.net 2.6.32-ARCH #1 SMP PREEMPT Thu Jan 7 22:28:29 CET 2010 x86_64 Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz GenuineIntel GNU/Linux<br />
The Glorious Glasgow Haskell Compilation System, version 6.12.1</p>
<p>str:    Request rate: 11555.5 req/s (0.1 ms/req)<br />
str:    Request rate: 11437.5 req/s (0.1 ms/req)<br />
str:    Request rate: 11595.1 req/s (0.1 ms/req)<br />
strT:   Request rate:  8480.5 req/s (0.1 ms/req)<br />
strT:   Request rate:  8777.3 req/s (0.1 ms/req)<br />
strT:   Request rate:  8762.9 req/s (0.1 ms/req)<br />
bs:     Request rate: 17266.1 req/s (0.1 ms/req)<br />
bs:     Request rate: 17349.4 req/s (0.1 ms/req)<br />
bs:     Request rate: 17227.9 req/s (0.1 ms/req)<br />
bsT:    Request rate: 14416.9 req/s (0.1 ms/req)<br />
bsT:    Request rate: 13607.0 req/s (0.1 ms/req)<br />
bsT:    Request rate: 14386.1 req/s (0.1 ms/req)<br />
epoll:  Request rate: 16242.7 req/s (0.1 ms/req)<br />
epoll:  Request rate: 17910.9 req/s (0.1 ms/req)<br />
epoll:  Request rate: 16119.1 req/s (0.1 ms/req)<br />
epollT: epollWait: interrupted (Interrupted system call) BROKEN!<br />
bs2:    Request rate: 18584.1 req/s (0.1 ms/req)<br />
bs2:    Request rate: 18580.1 req/s (0.1 ms/req)<br />
bs2:    Request rate: 18753.0 req/s (0.1 ms/req)<br />
bs2T:   Request rate: 17244.9 req/s (0.1 ms/req)<br />
bs2T:   Request rate: 16940.1 req/s (0.1 ms/req)<br />
bs2T:   Request rate: 16890.5 req/s (0.1 ms/req)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: codexon</title>
		<link>http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/#comment-279</link>
		<dc:creator><![CDATA[codexon]]></dc:creator>
		<pubDate>Mon, 18 Jan 2010 20:51:10 +0000</pubDate>
		<guid isPermaLink="false">http://donsbot.wordpress.com/?p=423#comment-279</guid>
		<description><![CDATA[I&#039;ve checked the configure logs both both machines, one where it works and one where it doesn&#039;t. They are both about the same except the one that works is running Ubuntu 9.10 instead of 9.04.

It should probably be noted that compiling works just fine, the error happens at runtime. Does this still mean it may be a configuration problem?]]></description>
		<content:encoded><![CDATA[<p>I&#8217;ve checked the configure logs both both machines, one where it works and one where it doesn&#8217;t. They are both about the same except the one that works is running Ubuntu 9.10 instead of 9.04.</p>
<p>It should probably be noted that compiling works just fine, the error happens at runtime. Does this still mean it may be a configuration problem?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dons00</title>
		<link>http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/#comment-277</link>
		<dc:creator><![CDATA[dons00]]></dc:creator>
		<pubDate>Mon, 18 Jan 2010 19:43:19 +0000</pubDate>
		<guid isPermaLink="false">http://donsbot.wordpress.com/?p=423#comment-277</guid>
		<description><![CDATA[@bos I get just over 10k req/sec for the Python epoll version, and 15k req/sec for the Haskell one.]]></description>
		<content:encoded><![CDATA[<p>@bos I get just over 10k req/sec for the Python epoll version, and 15k req/sec for the Haskell one.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bryan O'Sullivan</title>
		<link>http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/#comment-276</link>
		<dc:creator><![CDATA[Bryan O'Sullivan]]></dc:creator>
		<pubDate>Mon, 18 Jan 2010 19:06:28 +0000</pubDate>
		<guid isPermaLink="false">http://donsbot.wordpress.com/?p=423#comment-276</guid>
		<description><![CDATA[@dons00, what are the Python performance numbers like on your box?]]></description>
		<content:encoded><![CDATA[<p>@dons00, what are the Python performance numbers like on your box?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bryan O'Sullivan</title>
		<link>http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/#comment-275</link>
		<dc:creator><![CDATA[Bryan O'Sullivan]]></dc:creator>
		<pubDate>Mon, 18 Jan 2010 19:06:05 +0000</pubDate>
		<guid isPermaLink="false">http://donsbot.wordpress.com/?p=423#comment-275</guid>
		<description><![CDATA[@codexon, if you are having problems, you&#039;ll have to give us some details. Please file a report with detailed info about your platform and distribution at http://github.com/tibbe/event/issues]]></description>
		<content:encoded><![CDATA[<p>@codexon, if you are having problems, you&#8217;ll have to give us some details. Please file a report with detailed info about your platform and distribution at <a href="http://github.com/tibbe/event/issues" rel="nofollow">http://github.com/tibbe/event/issues</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dons00</title>
		<link>http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/#comment-274</link>
		<dc:creator><![CDATA[dons00]]></dc:creator>
		<pubDate>Mon, 18 Jan 2010 09:38:18 +0000</pubDate>
		<guid isPermaLink="false">http://donsbot.wordpress.com/?p=423#comment-274</guid>
		<description><![CDATA[&gt; functions available for bytestring are as numerous and useful as they are for strings? 

Indeed. They provide the full list api, along with many other support libraries, such as utf8 encodings, parser combinators and so on. That&#039;s why we use them for everything performance-oriented.

For unicode packed strings, I&#039;d use the text library, http://hackage.haskell.org/package/text

Regarding epoll_create failing on your machine -- could you take it offline, and send me the config.log from your event lib build? You&#039;re not building the app with the -threaded flag are you? That won&#039;t work.]]></description>
		<content:encoded><![CDATA[<p>&gt; functions available for bytestring are as numerous and useful as they are for strings? </p>
<p>Indeed. They provide the full list api, along with many other support libraries, such as utf8 encodings, parser combinators and so on. That&#8217;s why we use them for everything performance-oriented.</p>
<p>For unicode packed strings, I&#8217;d use the text library, <a href="http://hackage.haskell.org/package/text" rel="nofollow">http://hackage.haskell.org/package/text</a></p>
<p>Regarding epoll_create failing on your machine &#8212; could you take it offline, and send me the config.log from your event lib build? You&#8217;re not building the app with the -threaded flag are you? That won&#8217;t work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: codexon</title>
		<link>http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/#comment-273</link>
		<dc:creator><![CDATA[codexon]]></dc:creator>
		<pubDate>Mon, 18 Jan 2010 09:27:06 +0000</pubDate>
		<guid isPermaLink="false">http://donsbot.wordpress.com/?p=423#comment-273</guid>
		<description><![CDATA[I haven&#039;t been able to fix the unsupported problem error. I am not very experienced in Haskell to be able to debug the problem. I want to wait until epoll is merged with GHC (which I hope is soon) before writing the server I have planned out.

&gt; Just leave the data in bytestring form, and enjoy the performance.

I&#039;m assuming the functions available for bytestring are as numerous and useful as they are for strings? What about unicode?]]></description>
		<content:encoded><![CDATA[<p>I haven&#8217;t been able to fix the unsupported problem error. I am not very experienced in Haskell to be able to debug the problem. I want to wait until epoll is merged with GHC (which I hope is soon) before writing the server I have planned out.</p>
<p>&gt; Just leave the data in bytestring form, and enjoy the performance.</p>
<p>I&#8217;m assuming the functions available for bytestring are as numerous and useful as they are for strings? What about unicode?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dons00</title>
		<link>http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/#comment-271</link>
		<dc:creator><![CDATA[dons00]]></dc:creator>
		<pubDate>Mon, 18 Jan 2010 06:37:26 +0000</pubDate>
		<guid isPermaLink="false">http://donsbot.wordpress.com/?p=423#comment-271</guid>
		<description><![CDATA[@codexon

You&#039;re on track, up until:

&gt; So any time you need to operate on the data, it needs to be converted to and from a byte string costing 2*O(n) operations

Which isn&#039;t true. You just operate on the data directly as a bytestring. The penalty applies only if you convert it to a [Char], which would be silly. Just leave the data in bytestring form, and enjoy the performance.

Where you able to update the benchmark examples?]]></description>
		<content:encoded><![CDATA[<p>@codexon</p>
<p>You&#8217;re on track, up until:</p>
<p>&gt; So any time you need to operate on the data, it needs to be converted to and from a byte string costing 2*O(n) operations</p>
<p>Which isn&#8217;t true. You just operate on the data directly as a bytestring. The penalty applies only if you convert it to a [Char], which would be silly. Just leave the data in bytestring form, and enjoy the performance.</p>
<p>Where you able to update the benchmark examples?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
