[Dev] ZODB is not a Storage Technology (Re: other formats )
chrism at zope.com
Sun Nov 3 16:21:51 PST 2002
> >From a design standpoint it probably does. I'm not a ZODB expert by any
> means, but it is my understanding that Python pickles are what ZODB stores.
> I'm not sure how this changes as you try and use a Berkley DB as a backing
> store, but it does bring up a big design point. That is, should the file
> format be portable across operating systems? I would say yes, but that means
> that you need the same Berkley DB format to be supported on
> Win9x/ME/NT/2K/XP, Linux, Mac OS X, and whatever else you want to support.
> Does that portable Berkley DB code and format exist, I don't think so? If
Not sure about bsddb files, but FileStorage files are portable across
platforms (even ones with different endianness).
> you just use pickles, the data will be portable, but you need to have a safe
> unpickler to protect against trojan classes in the pickle; the method called
> when the data is unpickle is the big problem AFAIK. There is also the
> possibility that the pickle format could change with a future version of
Possible, but not very likely without a big stink. The pickle format
hasn't changed in any meaningful way in at least the last four years at
> I seem to remember some discussion a long time ago about data corruption
> when using Berkley DB as a backing store, but all the references on the
> ZODB-dev list seem old, so this might be a non-issue. Someone working on the
> data storage part of Chandler might want to do some searches with Google
> groups in comp.lang.python or some of the ZODB and Zope mailing lists.
bsddbStorage is less mature and well-tested than FileStorage.
> Finally, this is another point that should probably be discussed on the
> design list, but if you want other languages such as Java to be able to read
> the file format used by Chandler, ZODB could be problematic.
Yes. Unfortunately, there's not much to mitigate this except some sort
of RPC and a server.
More information about the Dev