Stefan H. Holek wrote:
I am playing with database replication (MySQL) and have found the
- 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 - ZODB-Dev@zope.org