[ZODB-Dev] Migration of obsolete BTrees to ZOPE 2.8

Tim Peters tim at zope.com
Fri Nov 18 10:02:49 EST 2005


[Margie Watkins CONT]
> The issue http://www.zope.org/Collectors/Zope/1695 asks for a statement
> from users who are affected by the missing modules.

Unfortunately, that's become "out of sight, out of mind" since then -- the
issue was opened 9 months ago, and to date you're the first to say you
really need this (if you read through all the referenced threads, you'll see
that everyone else who thought they _might_ need it eventually discovered
that they did not).

> It is a "genuine" problem for us. We have a large user base which has
> instances of obsolete BTrees and intSets. We need to be able to read
> those objects and migrate them to a new release of our product, WISE. I
> am unable to migrate them because of the different state formats in
> BTree. The convert method mentioned in the referenced thread does not
> help.

I'm not sure to what that refers, but not sure it matters either.  There are
four threads referenced in the bug report, and AFAICT none of them claim to
present a migration method for "old" BTrees or intSets.  Jim Fulton's
message here is the clearest on that topic:

    http://mail.zope.org/pipermail/zodb-dev/2005-February/008496.html

    ... it won't help with the uses of the ancient obsolete BTrees.
    They aren't the same as the new BTrees but in a different
    location.  They are actually totally differeent types with
    different state formats.  The new BTree classes cannot deal with
    their state.

    ...

    I fear we'll have to write some sort of conversion script
    to deal with converting old-style BTrees to new-style BTrees.

    Another idea might be to define some sort of protocol
    for dealing with unrecognized classes.  When the database
    encounters a class it doesn't recognize, it could look in a table
    for a handler.  That handler would be responsible for creating a
    new object.  Perhaps this could be combined with some sort of
    database conversion process.

Since Zope Corp didn't have this need in its own deployments, and no users
spoke up (at the time, or in the nine months after) with this need either,
no work was done by Zope Corp on this, and no work is currently planned.
It's possible that _someone_ wrote a conversion script, but if so I haven't
heard about it.

> I also need to be able to read the intSet.

Right, they have the same kinds of issues as the old BTrees ("totally
different type with different state format"), and so there's no dead easy
way to convert them either.

Bottom line is that you need conversion code that (probably) doesn't exist.
Anyone here want to write it?



More information about the ZODB-Dev mailing list