[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