[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