RE: [Zope] ZEO-Client
-----Ursprüngliche Nachricht----- Von: Tino Wildenhain [mailto:tino@wildenhain.de] Gesendet: Mittwoch, 12. Januar 2005 13:47 An: Arenz, Ralph Cc: 'zope@zope.org' Betreff: RE: [Zope] ZEO-Client On Wed, 2005-01-12 at 11:42 +0100, Arenz, Ralph wrote:
-----Ursprüngliche Nachricht----- Von: Tino Wildenhain [mailto:tino@wildenhain.de] Gesendet: Mittwoch, 12. Januar 2005 11:34 An: Arenz, Ralph Cc: 'zope@zope.org' Betreff: Re: [Zope] ZEO-Client
On Wed, 2005-01-12 at 11:16 +0100, Arenz, Ralph wrote:
Hi,
i' am using Zope-2.7.3 and i wan't my client-storages to be connected at zope-startup. In Zope-2.6.3 i used "open_at_startup" in DBTab but this option seems
not
to
be included in release 2.7.3, however i can't find it in component.xml. If i add it to zope.conf anyway i get an exception.
What do you mean by "open_at_startup"? If you configured the storages in zope.conf, you go to ZMI and add a DBTab Mount point, check all storages you want to mount and add. From now on the clients are connected each time zope starts.
HTH Tino
The option "open_at_startup" means that the client-databases are opened at
zope-initialization (not when zope is already up). If this fails zope won't come up. That feature is useful if Zope shouldn't run without an paticular storage.
This works the same if you do it like I described. Once you use the database, it is required for zope to start up. e.g. Zope will wait
when does it wait, is the question!
until the database (zeo) is ready. Regards Tino
If i using the option "open_at_startup" my stupid-log under 2.6.3 shows "client-connected" before ZServer is up on it's desired port. Without this option the connection takes place after ZServer is up on it's port, that the significant difference. Sometimes there is a time delay of a few minutes after zope is up before the connection is made (the mounted storage is about 6GB ;-)). I can't except these delay so i packed this into the initialization part (before zope is up) with the option "open_at_startup". So back to my first question, where ist that option gone in Zope-2.7.3? any ideas? Ralph
Arenz, Ralph wrote:
-----Ursprüngliche Nachricht----- Von: Tino Wildenhain [mailto:tino@wildenhain.de] Gesendet: Mittwoch, 12. Januar 2005 13:47 An: Arenz, Ralph Cc: 'zope@zope.org' Betreff: RE: [Zope] ZEO-Client
On Wed, 2005-01-12 at 11:42 +0100, Arenz, Ralph wrote:
-----Ursprüngliche Nachricht----- Von: Tino Wildenhain [mailto:tino@wildenhain.de] Gesendet: Mittwoch, 12. Januar 2005 11:34 An: Arenz, Ralph Cc: 'zope@zope.org' Betreff: Re: [Zope] ZEO-Client
On Wed, 2005-01-12 at 11:16 +0100, Arenz, Ralph wrote:
Hi,
i' am using Zope-2.7.3 and i wan't my client-storages to be connected at zope-startup. In Zope-2.6.3 i used "open_at_startup" in DBTab but this option seems
not
to
be included in release 2.7.3, however i can't find it in component.xml. If i add it
to
zope.conf anyway i get an exception.
What do you mean by "open_at_startup"? If you configured the storages in zope.conf, you go to ZMI and add a DBTab Mount point, check all storages you want to mount and add. From now on the clients are connected each time zope starts.
HTH Tino
The option "open_at_startup" means that the client-databases are opened at
zope-initialization (not when zope is already up). If this fails zope
won't
come up. That feature is useful if Zope shouldn't run without an paticular storage.
This works the same if you do it like I described. Once you use the database, it is required for zope to start up. e.g. Zope will wait
when does it wait, is the question!
until the database (zeo) is ready. Regards Tino
If i using the option "open_at_startup" my stupid-log under 2.6.3 shows "client-connected" before ZServer is up on it's desired port. Without this option the connection takes place after ZServer is up on it's port, that the significant difference.
Sometimes there is a time delay of a few minutes after zope is up before the connection is made (the mounted storage is about 6GB ;-)). I can't except these delay so i packed this into the initialization part (before zope is up) with the option "open_at_startup".
So back to my first question, where ist that option gone in Zope-2.7.3?
any ideas?
Zope 2.7 binds the server ports much earlier in the startup process than it used to. The current version of the option is the 'wait' key of the 'zeo-client' section of zope.conf; it causes the database / storage intialization to block while establishing the connection and verifying the cache, but the intialization itself starts *after* binding the server ports. A minutes-long startup is likely due to the client's need to verify a large persistent disk cache; one workaround would be to turn off persistent caches; a longer-term solution would be to work with the folks on zodb-dev to land a set of improvements to the cache verification code (they live on a branch somewhere, I think). Tres. -- =============================================================== Tres Seaver tseaver@zope.com Zope Corporation "Zope Dealers" http://www.zope.com
[Tres Seaver]
... A minutes-long startup is likely due to the client's need to verify a large persistent disk cache; one workaround would be to turn off persistent caches; a longer-term solution would be to work with the folks on zodb-dev to land a set of improvements to the cache verification code (they live on a branch somewhere, I think).
All the cache verification speedups we had were released in ZODB 3.2 (see primarily "What's new in ZODB3 3.2 alpha 1" in http://zope.org/Products/ZODB3.2/NEWS ). There aren't any more of those hiding on a branch. There are other kinds of optimizations hiding in assorted branches, though. Having a "large" persistent ZEO cache has opposing effects: (a) possibly better steady-state performance; (b) guaranteed longer cold-start verification time. That tradeoff is unavoidable with the current design. A possible future direction may be to use much larger ZEO caches, but to weaken the meaning of "persistent" by simply giving up after verification has consumed N seconds (throwing away all cached objects that haven't managed to get verified by then). There's no code anywhere to do that now, though.
Tres Seaver wrote:
A minutes-long startup is likely due to the client's need to verify a large persistent disk cache; one workaround would be to turn off persistent caches;
How do you do this now? I've tried all I coudl think of and still have .zec files lying around causing havoc when connecting from one zeo client to several zeo servers in turn (dev and live storages, for example..) cheers, Chrus -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
Chris Withers wrote:
Tres Seaver wrote:
A minutes-long startup is likely due to the client's need to verify a large persistent disk cache; one workaround would be to turn off persistent caches;
How do you do this now? I've tried all I coudl think of and still have .zec files lying around causing havoc when connecting from one zeo client to several zeo servers in turn (dev and live storages, for example..)
Remove the 'client' key from the storage config in zope.conf. $ZOPE_HOME/lib/python/ZODB/component.xml says, <key name="client"> <description> Enables persistent cache files. The string passed here is used to construct the cache filenames. If it is not specified, the client creates a temporary cache that will only be used by the current object. </description> </key> Tres. -- =============================================================== Tres Seaver tseaver@zope.com Zope Corporation "Zope Dealers" http://www.zope.com
participants (4)
-
Arenz, Ralph -
Chris Withers -
Tim Peters -
Tres Seaver