Forum: Mongrel Threading Rails

19c9af375aca3001e3978cb16684803c?d=identicon&s=25 Parker Thompson (Guest)
on 2008-08-27 19:00
(Received via mailing list)
Hey,

We (Pivotal Labs) have bee experimenting with Mongrel and Rails Edge
to see what happens if we remove the mutex around the dispatch to
Rails, our goal being to reduce memory usage in virtualized
environments where memory is tight.  We're pretty happy with the
results and ready to put together a real patch for Mongrel to allow
users to run Rails this way.  So, we're ready to patch Mongrel to
support this.

It probably doesn't make sense to just remove the handler's mutex
around dispatch as this could lead to num-processors threads in rails
concurrently.  Probably we'll want to limit that separately.  I'm
thinking we should patch the handler to optionally allow threading,
then make mongrel_rails support this + a limit on how many requests to
process concurrenty.

I'm wondeing what kind of patch you would want, and whether anyone has
suggestions.

Thanks,

pt.
7e85c8b066ffb802cba005e90c6c616e?d=identicon&s=25 Piyush Ranjan (Guest)
on 2008-08-27 22:19
(Received via mailing list)
isn't rails 2.2 / edge supposed to have threading built in ? or am I
missing
something here ?

also mongrel can handle multiple threads well . In fact I have tried it
in
mongrel handlers and it works very well (for 75 concurrent requests each
taking 5 minutes to complete).
6805b35d0a8ea3ede0a7da2d4cf5ae77?d=identicon&s=25 Jonathan Weiss (Guest)
on 2008-08-27 22:29
(Received via mailing list)
On Wed, Aug 27, 2008 at 9:38 PM, Piyush Ranjan <piyush.pr@gmail.com>
wrote:
> isn't rails 2.2 / edge supposed to have threading built in ? or am I missing
> something here ?
>

Rails 2.2 is thread-safe. This doesn't mean that it is automatically
used this way.

> also mongrel can handle multiple threads well . In fact I have tried it in
> mongrel handlers and it works very well (for 75 concurrent requests each
> taking 5 minutes to complete).
>

Mongrel can handle multiple threads, but Rails runs inside a big
lock/mutex (because until 2.2 it isn't thread-safe).

This whole discussion is about changing/removing the lock.

Jonathan

--
Jonathan Weiss
http://blog.innerewut.de
http://twitter.com/jweiss
19c9af375aca3001e3978cb16684803c?d=identicon&s=25 Parker Thompson (Guest)
on 2008-08-28 04:01
(Received via mailing list)
FYI, we are pretty much done with this:

  http://github.com/pivotal/mongrel/tree/master

We'll probably test it a bit more tomorrow and then release it into the
wild.

Any feedback would be appreciated.

Thanks,

pt.
This topic is locked and can not be replied to.