On 10/18/07, Yohanes Santoso <ysantoso-rubytalk / dessyku.is-a-geek.org> wrote:
> I don't favour the long-running process model for server. I prefer to
> fork() for each request. So I'm rarely bothered by whatever ruby's GC
> quirknesses that I may have triggered. I understand that this approach
> is not trendy anymore and RoR does not support this model, but I'm
> just throwing it out in the open for an alternative work-around where
> possible.

Hi Yohanes: most Rails deployments use a process pool but with longer
lifetime than a single request. You can let the process exit after
max_child_requests and rely on the parent to fork or the process
supervisor to respawn. Perhaps it isn't trendy? but this approach is
common and works well for both Ruby and Rails.

Also of interest, Hongli Lai has recently done some work to make Ruby
GC copy-on-write friendly and thus more attractive to fork:
http://izumi.plan99.net/blog/

Best,
jeremy