[ZODB-Dev] RelStorage: Clearing temp_store in replication-friendly way

Stefan H. Holek stefan at epy.co.at
Wed Jul 30 16:47:12 EDT 2008


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  
master.

> 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.

Stefan

--
Anything that, in happening, causes itself to happen again,
happens again.  --Douglas Adams




More information about the ZODB-Dev mailing list