[Mongrel] multi threaded theoretically useful?

Kirk Haines wyhaines at gmail.com
Sat Sep 8 21:31:48 EDT 2007


On 9/8/07, Ashley Moran <work at ashleymoran.me.uk> wrote:
>
> Interesting!  What about the case of long-running requests, eg file
> uploads, outgoing web service requests or complex calculations?  Do
> you have any of those, and if so, how does it affect the balance of
> event-based vs multithreaded?

Yeah.

File uploads -- the most efficient way to deal with these is really to
run a separate, dedicated mini-app just for them.  If I remember my
history correctly, this is actually what originally gave rize to Merb.
 Ezra needed something fast and lightweight to efficiently handle file
uploads.

In Ruby, a dedicated file upload handler running event based, though,
will still outperform the multithreaded approach. That might make an
interesting topic for a blog post sometime soon....

Regarding accessing web services, it all depends on whether those
accesses are done in a way that block other threads or not.  If they
do not, then heavy web service access would be a place where latencies
could also be captured.

Heavy calculations, on the other hand, are a hands down winner for the
single threaded approach.  There are no latencies to capture -- it's
CPU all the way, so you just need to bring all the resources available
to the process to bear on one problem at a time.


Kirk haines


More information about the Mongrel-users mailing list