Yes, you can do this with the ZEO add-on ($$) from DC. It pulls ZODB out into a separate process, potentially running on a separate machine, which handles all object storage for one or more Zope instances. In this way, you can scale Zope exactly as you desire.
--Jeff
Wow, the ($$) part makes me think twice. I'd like to explore a bit more... it's a scary thought to set up a website only to find that it gets choked even with moderate hit rate. Does anyone know any simpler tricks to improve performance for the interim period, so to make things more or less scalable when going from one processor to two or three? Of course, when the website is served by 5 processors, probably ZEO would make sense.
Any comments would be appreciated.
regards,
Hung Jung
PS- perhaps the thing to do is to separate web presentation data (like DTML, etc.) from the enterprise data (user info, product catalogs, etc.), and use ZODB only for the presentation data, while using an external database for the enterprise data. This way, I could run several copies of Zope, all accessing the same database server. That is, essentially make the ZODB read-only. And ZODB is changed only when changing the whole website's presentation. I think can live with that. :)
Sorry for thinking aloud... :)
Your thinking is perfect! With this solution your site may be even a bit faster by reducing the number of communication-indirections by one. NM