[Haskell-cafe] Re: Climbing up the shootout...
manlio_perillo at libero.it
Wed Sep 24 15:25:21 EDT 2008
Simon Marlow ha scritto:
> Manlio Perillo wrote:
> We'd certainly support any efforts to add support for a more modern I/O
> multiplexing or asynchronous I/O back-end to the IO library. It's not
> too difficult, because the interface between the low-level I/O supplier
> and the rest of the IO library is rather small - just a few functions
> that read and write blocks of data in a blocking or non-blocking way.
> The blocking variants currently communicate with the I/O manager thread
> which does select() on behalf of the clients.
There is some documentation that summarize the current status, and how
all fits together?
There are some benchmarks that tell you the use of a separate I/O
manager thread is a good solution?
> Before doing this, though, I'd urge you to check that your application
> really does have scaling issues with the current system. If it doesn't,
> then great, and if it does then you have a good benchmark to evaluate
> the replacement.
Right now I don't have any Haskell applications.
The only application that I develope and need to scale are, until now,
web applications, and for this I use Nginx + mod_wsgi + wsgix (the last
two implemented by myself, http://hg.mperillo.ath.cx/).
I'm quite satisfied with the current status, and I don't think I need to
However I'm looking for a good environment for implementing generic
internet servers, or web applications with special needs.
As an example one of my "maybe future" tasks is to write a simple
BitTorrent tracker + seeder.
I have tried to write it as a Nginx module, but it requires a lot of
boiler plate code, so I gave up.
Twisted (a Python asynchronous framework) is a confortable environment,
but I feel concurrent Haskell is superior.
It surely will work using just select, but since I have experience
(including indirect experience) with both Twisted and Nginx, I know that
using select is asking for troubles (but the solution used by Haskell is
very new for me).
It is ok for clients, but not for servers that need to go in internet.
Thanks Manlio Perillo
More information about the Haskell-Cafe