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.
on 2008-08-27 19:00
on 2008-08-27 22:19
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).
on 2008-08-27 22:29
On Wed, Aug 27, 2008 at 9:38 PM, Piyush Ranjan <firstname.lastname@example.org> 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