[ZODB-Dev] Broken instances after refactoring in ZODB

Hanno Schlichting hannosch at hannosch.eu
Sat Oct 4 18:35:23 EDT 2008


Laurence Rowe wrote:
> Leonardo Santagada wrote:
> 
>> Why doesn't zodb has a table of some form for this info? I heard that  
>> sometimes for very small objects the string containing this  
>> information can use up to 30% of the whole space of the file (using  
>> FileStorage). How does RelStorage store this?
> 
> I believe this was what the python pickle protocol 2 was created for. 
> However I think when someone last looked the potential space savings 
> with real world data did not justify making the change (Hanno has a 
> branch in svn for this).

I tried out the protocol 2 format on its own. That only brings in
advantages for new-style classes. My very informal tests didn't reveal
any significant improvements.

My use-case is storing document centric data in the ZODB, in which case
the actual payload will always be a lot larger compared to the header
information.

You can have a look at http://www.python.org/dev/peps/pep-0307.

What you are refering to is the so called "extension registry". To this
point I haven't heard of any usage of the extension registry mechanism,
even though it was specifically created for Zope and Zope as a framework
has the largest block of reserved numbers in the registry :)

I'd suggest you try this out on some small typical data set and just
look at the generated pickles.

Hanno



More information about the ZODB-Dev mailing list