[Zope] [FEATURE REQUEST] comment at the top of DTML Methodsand Documents

marc lindahl marc@bowery.com
Fri, 25 May 2001 01:41:11 -0400

> From: "Jason Cunliffe" <jasonic@nomadicsltd.com>
> Please clarify for me then..

Just my $0.002...

> ZODB is best when:
> - There are more  READs than WRITEs.

True of not only of any data base, but most file systems (the only notable
exception I can think of is TAPE).

> Because of 'Undo', WRITE intensive designs will swell ZODB too quickly

Not necessarily.  You can make 'volatile' storage and control how it's put
into the ZODB -- take a look at the source for the ThreadSafeCounter product
for an example.

> External Storage is best
> - There are frequent WRITEs.

See above... keep in mind, data.fs is stored in the same file system, so it
has the same performance characteristics as any other file (and some
opportunities for improvements as well).

> - Very Large Files, or files which start off small and become very large
> later, [Digital Video for example]. These couild more quickly combine to tip
> ZODB past 2Gb limit [not a problem everywhere]

...should never be a problem -- see

> - Sharing data with others applications, sharing with Apache, whatever

This is the real issue.  By apache, I suppose you mean passing absolute URLs
to apache to serve directly out of the file system.  I suspect just using
Zserver with Squid would equal the performance, but haven't tested it.  But,
let's say you have external data sources and sinks for these files, like
legacy data bases, or some such.  Some of those could probably be linked via
some database adapters, python code, etc., but for some situations, it would
make more sense to use external storage.

> - Need to leverage directly the filesystem's permissions [Linux & family]

I'm not sure what you mean... there is some stuff around for LDAP and some
others, so you could create a 'parallel universe' of permissions inside
zope... right?  So then you could go either way with the file storage.

> What do you think?

Personally... you can tell I'm keen on ZODB, and think it's worth working
with rather than around...