[tbnl-devel] uploading a huge file / ajax progress bar

Travis Cross travis at crosswirecorp.com
Fri Feb 10 05:48:27 UTC 2006


> I'm not sure if anyone would find this useful though.

I for one would find this useful.  It would also serve to make TBNL
a more compelling system, as this is a hard problem to solve at the
application level in many frameworks.

> If anyone can give me more pointers I would try my hands on this

You seem to have identified the key points.  I will take a look
through the code and see if I can add anything that might be useful
to you.

Cheers,

-- Travis

Mac Chan wrote:
> Hi,
> 
> I'm trying to see if it's feasible to use lisp + tbnl to build an
> internal documentation system that allows user to upload huge files.
> 
> Typically users might upload files with size ranges from 20mb to 600mb.
> 
> I'm using lispworks as the development platform, but intend to deploy
> the site in freebsd/linux + sbcl/cmucl.
> 
> I notice that by uploading a 600mb file on win32 + lispworks + tbnl
> mod-lisp, the memory usage remains constant (ie. Lispworks is
> streaming the content directly to disk).
> 
> However, with either freebsd/cmucl or linux/sbcl, top shows that all
> of the uploaded contents are first stored in memory and then get
> written to disk. This is a major scalability problem, I'm not sure if
> this is a design issue that can be fixed.
> 
> Since uploading huge files take a bit of time, displaying a progress
> is a must; otherwise user might think that the browser hangs. It is
> also good to let them know how long will it take to upload the file so
> they can check back in couple minutes instead of staring at a stalled
> screen.
> 
> There exist some open source implementations for php and ruby.
> http://www.raditha.com/php/progress.php
> http://sean.treadway.info/demo/upload/
> 
> I quickly went through the tbnl request post initialization routine
> and the rfc2388 module. It looks like what we need to do is to change
> rfc2388 to continuously write a report of the current upload progress
> to a file, and then add an entry point in tbnl to return a html page
> showing the current progress. This page can be launched by javascript
> when the upload form is submitted.
> 
> Am I missing any important piece of information in this picture?
> If anyone can give me more pointers I would try my hands on this as an
> exercise. I'm not sure if anyone would find this useful though.
> 
> Thanks in advance.
> -- Mac
> _______________________________________________
> tbnl-devel site list
> tbnl-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/tbnl-devel



More information about the Tbnl-devel mailing list