Gfeller Martin wrote:
I fear that a standard ZEO setup with one storage server, a read-write client, and a number of read-only client
That's "standard"? ;-)
down affairs for the main Zope tasks, as there are quite a number of writes (no problem with a single server). Furthermore, it would probably increase memory requirements, as both the Storage Server and the Zope Servers would need substantial caches.
The storage server doesn't need much of a cache. The storage server seems to be pretty light weight and very stable. I've never had one crash. Can't say the same for Zope client servers ;-) (although ZEO means these restart much quicker as they don't have to rebuild ZODB index files)
Is there a way to run the ZEO server protocol in the main Zope server, i.e., have a single process that is both a Zope server and serves other ZEO clients? Are there other routes I should try?
How does having a single process help? I think the answer to your question is "no, because no-one has found it necessary"
I have also tried to simply open the ZODB DBs read-only from another process, but that doesn't give me the updates to the objects after the initial open.
That's playing with fire. Something in ZODB has a sync method you need to call if you really want to get crispy... The way that works for me is having a storage server and Zope client on the same machine. If you need lots of Zope clients, then move them onto their own machines :-) cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk