[ZODB-Dev] Slow Zeo load times after upgrade to ZODB 3.4
Dieter Maurer
dieter at handshake.de
Sat Oct 22 13:36:12 EDT 2005
Erik A. Dahl wrote at 2005-10-21 15:43 -0400:
>> The ZODB cache lives in RAM and is a Python object cache.
>> It is a per connection cache.
>>
>> The ZEO client cache lives on disk and is a pickle cache (it
>> caches the object states not the objects themselves).
>> It is shared by all connections to a single storage (in one process).
>>
>How do these two relate to each other?
You see a cache hierarchy:
application world ZODB cache ZEO Client Cache ZEO Server
(Python objects) (Python objects) object states object states
The "ZEOClientStorage" fetches an object's state from its cache.
In case of a cache miss, it fetches it from the ZEO server.
The ZEO Client Cache can save you the network interaction.
> Do I really need the disk
>cache?
I do not know...
The ZEO developpers were convinced it were essential.
They spent considerable time to optimize and tune it...
Do you really care? Do you need to live with 1 GB disks
(wide spread a decade ago)?
> Can it be turned off?
Sure, when you change the code.
Otherwise, you can make it small but not turn it off.
> I don't have "client" set so that each
>process makes its own cache file. (When I set this I have problems
>if two processes us the same zope.conf file). Is there a doc
>somewhere explaining all of this??
"ZConfig" based software components (such as Zope and ZEO)
provide valuable information in the configuration schema
(usually found in files named "schema.xml" or "component.xml";
the Zope configuration schema is in ".../Zope[2]/Startup/zopeschema.xml")
A further valuable documentation source are the "docstring"s
embedded in the source code.
There are also documents around about the ZODB and ZEO (but
I will not search them for you).
--
Dieter
More information about the ZODB-Dev
mailing list