On 27. Jul 2008, at 18:48, Shane Hathaway wrote:
I would expect that when a slave goes down, the slave must replay
all of the statements since the beginning of a transaction,
including the statements that create temporary tables. Does it not
work that way?
Not in MySQL anyway. MySQL knows transactions at table-level only.
For replication, the slave maintains the name of the master log file
and a pointer to the next line to be read from it. That's all.
Do slaves respect transaction boundaries? If they don't, then ZODB
clients of slaves will miss object updates, leading to sporadically
inconsistent ZODB caches, especially under load.
Slaves replay BEGIN, COMMIT, and ROLLBACK statements issued on the
We can do that, but I hope it doesn't impact performance too much.
It seems a shame to not use a RAM-based temporary table. OTOH,
I've tried to structure RelStorage to allow changes like this
without too much effort.
I am primarily aiming for redundancy here, not performance.
And -BTW- you have and thanks for that.
Anything that, in happening, causes itself to happen again,
happens again. --Douglas Adams
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org