[Mongrel] Uploading Large (100mb+) files

Vishnu Gopal g.vishnu at gmail.com
Tue Nov 28 14:03:10 EST 2006


If you're using Rails with Mongrel, file upload currently sucks. If you have
two mongrels running (say) and two users upload two large files, your entire
app will be hung just serving those requests. This is because Rails can't
run safely multi-threaded, and it's not Mongrel's fault.

An upload only Mongrel could (and should) be written in a framework other
than Rails. Both Camping and Merb are good choices. In this instance you
don't need many mongrels since even 1 can simultaneously serve many file
uploads. So you'll ideally have 1 server where you have one or more mongrels
running your file upload app, and use that to accept uploads. This is what
we do at SlideShare: we have a custom Camping app to accept file uploads.

Your frontend webserver or load balancer would redirect all requests to
/upload (say) to your uploader mongrel running at it's own port. And all
other requests can be served some other way. We do this through lighttpd
proxying.

HTH
Vish

On 11/28/06, Rogelio J. Samour <rogelio.samour at gmail.com> wrote:
>
> I have an Apache 2.2.3 (mod_proxy_balancer) frontend server that does
> not have mongrel installed. It does proxy requests to several other
> mongrel-only servers (each running 2 mongrel processes). Each mongrel
> node has the same rails code-base and it's working perfectly.
>
> However, my question is when I add an upload file form... where is it
> going to physically put that file? I mean since it's hitting either one
> node or the other, so how does mongrel deal with that? and how or where
> do I tell it to accept large files (100mb+) ?
>
> I have read on having an upload-only mongrel process, but again how will
> all the other mongrels know to post the file to it or to a specific
> folder somewhere? Direction on this would be greatly appreciated!
>
> Thanks for your help on this. I searched the forum and didn't find
> anything specifically dealing with this. I have also checked the mongrel
> docs and most of the setups talk about mongrel_upload_progress plugin
> and/or the mongrel_cluster setup...(I may have missed something :-/)
>
>
> cheers,
>
> -rjs-
>
> p.s. mongrel ROCKS!
>
> _______________________________________________
> Mongrel-users mailing list
> Mongrel-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/mongrel-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/mongrel-users/attachments/20061129/1fc96cbb/attachment.html 


More information about the Mongrel-users mailing list