[Mongrel] Uploading Large (100mb+) files

Philip Hallstrom mongrel at philip.pjkh.com
Tue Nov 28 15:20:00 EST 2006


> If you use something like mongrel_upload_progress, the single-threadedness
> of Rails is no problem because Mongrel will intercept the upload and not
> hand it off to Rails until it's complete. That's what I'm doing at the
> moment, and my app runs just fine on one Mongrel.

I haven't used this plugin, but just gave it a quick read through... one 
thing I didn't see mentioned... can I skip the upload progress stuff and 
just get the benefits of it not blocking mongrel/rails?


>
> If you're running large file uploads, I would recommend looking into it
> anyway, because your users will surely want some kind of update about how
> their upload is going.
>
> Matt
>
> On 11/29/06, Vishnu Gopal <g.vishnu at gmail.com> wrote:
>> 
>> 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
>> >
>> 
>> 
>> _______________________________________________
>> Mongrel-users mailing list
>> Mongrel-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/mongrel-users
>> 
>> 
>
>
> -- 
> Matt White
> -----------------------
> Thermal Creative
> http://blog.thermalcreative.com
>


More information about the Mongrel-users mailing list