We are running Zope 3.2 (and therefore ZODB 3.6), and are using
FileStorage for the ZODB storage mechanism.
We have several Zope installations on different platforms -- different
hardware word sizes, different cpu's, different (Linux) operating
We routinely copy the Data.fs and Data.fs.index files between systems
(using scp) -- so as to for example snag a copy of the live ZODB for
testing purposes. And the ZODB copied to a different platform has
always worked perfectly -- i.e., we are able to access objects in it
(via Zope), their values are correct, etc.
My question: is this because the Data.fs internal format (modulo
whatever scp does when it transfers files between different platforms)
is always the same, no matter on which platform the ZODB was created?
OR ... have we just been "extremely lucky"?
I looked through lots of web pages and articles on the ZODB (and on
Zope), and did of course learn that objects in the ZODB have been
pickled (all object types?) and pickling gives platform independence.
But it occurs to me that there is probably glue in the Data.fs holding
the pickles together, so to speak, and that the glue itself may not
ALWAYS be "platform independent" in the above sense. I also found
discussions on Zope and ZODB being "machine-independent", and there
being products using them that are also "machine-independent", but I
think the generally understood meaning of that term is not exactly
what I am asking.
Thanks for any answers or pointers you can provide.
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org