<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
  <title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Thanks Paul for all those infos.<br>
Would storing files using MySql or&nbsp; PostGreSQL be another viable
solution? Have you tried that ?<br>
<br>
<br>
Seb<br>
<br>
Paul Winkler wrote:<br>
<blockquote type="cite" cite="mid20040112212351.GA19800@slinkp.com">
  <pre wrap="">On Tue, Jan 13, 2004 at 12:01:09AM +0100, Sebastien Pastor wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Hi there,


I am about to finalize a Zope 2 site. It will mainly play the role of 
groupware app and storage server.
My question is : i know i ll get quicly a big amount of PSD files 
(photoshop) they are usually quite heavy. Do you rekon i should store 
them on my server file system rather than the ZODB ? Do you see any 
trouble putting them all into the DB in a longer term  ? (i know my 
python is large-file compiled). 
    </pre>
  </blockquote>
  <pre wrap=""><!---->
two issues:

1) A single large FileStorage has been a bit cumbersome to maintain
(backups etc). recent developments (repozo.py) make it possible
to do an incremental backup.
There's also DirectoryStorage which on a suitable filesystem should 
be able to scale to a very large database.
You can also mix-and-match and have multiple databases using DBTab.

2) Performance of serving large files or images from Zope is pretty
bad, much slower than a static webserver like Apache. The worst
part is that a few simultaneous requests for large files will
essential DOS your entire zope site until they complete.

I have not identified the precise point of pain, but I know that
in my experience, 5 MB is OK and 50 MB is awful. I have worked
around this by using FSCacheManager (available from CVS at
collective.sf.net) which does "funky caching". It is easy to set 
up with Apache, but is only safe to use with anonymously-viewable content.  
I understand that Squid can be set up to do filesystem caching while 
forcing authentication on each request so it would be safe with 
secured content, so we might do that instead at a later date.

  </pre>
  <blockquote type="cite">
    <pre wrap="">Storing on both FS and ZODB is it an 
easy thing to do ?
    </pre>
  </blockquote>
  <pre wrap=""><!---->
If you want the files on the filesystem, there are various solutions
depending on your needs: LocalFS, FilesystemDirectoryView, and APE. 
I have not evaluated these for performance with large files, except
LocalFS which I know is at least as slow as normal zope File objects.
I tend to assume they are all slow.

  </pre>
</blockquote>
</body>
</html>