Hanno Schlichting wrote:
>>> Hanno Schlichting recently posted a nice graph showing the persistent 
>>> structure of a Plone Page object and it's 9 (!) sub-objects. 
>>> http://blog.hannosch.eu/2009/05/visualizing-persistent-structure-of.html
>> That graph isn't quite correct ;-)
>>
>> workflow_history has DateTime objects in it, and I think they get their 
>> own pickle.
> 
> Nope. DateTime objects are plain old-style classes and don't inherit
> from persistent.*. 

Hmm, oh well, my bad...
In that case it must just be that their pickled form is huge compared to 
an int ;-)

They are incredibly expensive to unpickle since all
> the DWIM magic in their __init__ get called each time, though.

How come? Unpickling doesn't call __init__ and I don't see why the DWIM 
magic would be needed anyway, since everything has already been parsed.

It's actually the list of PersistentMappings that is the problem. Once 
that gets large (ie: a content object that's been around for a long 
time) then everything that adds workflow history commits a new copy of 
that list.

cheers,

Chris

-- 
Simplistix - Content Management, Zope & Python Consulting
            - http://www.simplistix.co.uk
_______________________________________________
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev

Reply via email to