From: Rick James Date: October 28 2011 3:50pm Subject: Re: Master-Master -> duplicate entry List-Archive: http://lists.mysql.com/replication/2272 Message-Id: <4EAACF31.3050900@yahoo-inc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Anyone happen to understand how (or if) DETERMINISTIC in Stored Programs interacts with Replication? On 10/28/11 12:03 AM, Johan De Meersman wrote: > ----- Original Message ----- >> From: "Rick James" >> >> The potential flaw in semi-sync is that it acks once the data gets to >> the relay log; it does not wait for the write to be applied to the >> table. Granted, it would take two serious crashes to cause loss of a >> write. > Correct, thank you :-) > > It amazes me how many people run replication, but how little is actually understood about it :-) > > MySQL's semi-synchronous feature is not that a quorum of slaves confirms the update (as Cassandra does, like Marcus points out); it is semi-synchronous because the slave must acknowledge that it has _received_ the update (ie, written to the relay log), whereas a fully synchronous replication requires that the slave acknowledges that it has _applied_ the update. > > When the master writes statements to the binary log, most non-deterministic expressions (autoincrement, now(), ...) get replaced by the actual values that were applied; thus ensuring that the slave does indeed apply exactly the same data. Not *all* of those get translated, though - a typical example being "insert as select" where the select has no explicit ordering - and those cases, if you have them, can be accomodated by using row-based replication instead of statement-based. Look at the documentation before making a decision :-) > > > > -- Rick James - MySQL Geek