Stefan H. Holek wrote:
I am playing with database replication (MySQL) and have found the following caveats:

        - don't mix engine types (MyISAM, InnoDB)
        - don't use temporary tables

Now, RelStorage does both and so I was wondering how to proceed with replication. Would it be prudent to assume that all I ever need to replicate are the InnoDB tables "transaction", "object_state", and "current_object"? All other tables don't seem to be used across transaction boundaries, but I may be missing something here.

That is mostly correct. You need to replicate transaction, object_state, current_object, and do something with new_oid. There is no requirement to replicate the other tables, since they are used only for packing, although replicating object_ref and object_refs_added may save some work.

The new_oid table is special to the MySQL adapter. RelStorage uses the new_oid table as a kind of sequence. Like any sequence, it is intentionally non-transactional. Perhaps there would be no ill effects in switching it to the InnoDB engine.

Which MySQL replication method are you looking into?


For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -

Reply via email to