[Zope] Scalability questions

Phil Glaser StillSmallVoice@DirectvInternet.com
Mon, 1 Jul 2002 17:56:07 -0400


Hi,

I am beginning the planning process for a Zope content management system
that will support approximately 8,000 users. It is hard to predict the
day-to-day use of the system, so I am trying to think ahead about
scalability issues, and I have a number of questions.

STATIC FILES
One of the suggestions in the literature for improving performance is to
allow Apache to serve static files. It would seem, however, that doing so
completely takes away the meta data and permission management features of
Zope. The LocalFS product, on the other hand, enables you to serve content
from the file system and maintain meta data and apply user permissions from
Zope. Is there any performance advantage with LocalFS, or is it basically
the same as storing the content in Data.fs?

DATA.FS LIMITATIONS
If all the site's content is stored in Data.fs, I'm concerned that it would
quickly grow to a size that would result in performance drag. Since I'm used
to the RDBMS world, it seems odd to store all that data in one file. Is
there a rule of thumb with respect to the amount of data you can put into
Data.fs before performance becomes an issue?

ALTERNATIVES TO DATA.FS
It seems like the following alternatives to DATA.FS in its default
configuration are available:

***Distribution***
This option would involve separating the server that stores the .FS file
from the one(s) running Zope. You would do this with a ZeoStorageServer. A
variation on this theme would be to use NAS/NFS to put the data on a
separate server.

***ExternalMount***
Here you would use the ExternalMount product to store the data for selected
portions of ZODB (e.g., for a specific Product) in a separate .FS file,
either on the same or a separate server. Presumably this option would
mitigate performance issues resulting purely from the size of Data.FS.

***BerkeleyDB or Oracle***
Oracle or Berkeley DB can be used as the storage mechanism instead of .FS.
But in doing so do you loose Zope functionality?

***LocalFS***
LocalFS could be used to store large objects (like spreadsheets, PDF files,
WAV files, etc.) on the file system and benefit from Zope's meta data and
permissions system. In this case, it seems like the data Zope would store
would be limited to the meta data and permissions data -- the entire object
would not be duplicated in Data.FS. Like the ExternalMount solution, LocalFS
would, it seems, alleviate performance issues related to the size of
Data.fs.


Have I exhausted the possibilities, or are there others?

Other there other issues I should be thinking about?

Thanks for your help!

Regards,

Philip Glaser
Principal and Software Architect
Sustainable Software Solutions, LLC
StillSmallVoice@DirectvInternet.com
www.sustainsoft.com
973-951-9522