<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: MySQL: Time Delayed Replication</title>
	<atom:link href="http://www.rustyrazorblade.com/2008/05/mysql-time-delayed-replication/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rustyrazorblade.com/2008/05/mysql-time-delayed-replication/</link>
	<description>Tech Thoughts, Mostly on LAMP - by Jon Haddad</description>
	<lastBuildDate>Mon, 23 Jan 2012 09:03:48 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Frarseclata</title>
		<link>http://www.rustyrazorblade.com/2008/05/mysql-time-delayed-replication/comment-page-1/#comment-69658</link>
		<dc:creator>Frarseclata</dc:creator>
		<pubDate>Mon, 13 Jun 2011 02:20:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.rustyrazorblade.com/?p=123#comment-69658</guid>
		<description>Just now examined the thread! great work.</description>
		<content:encoded><![CDATA[<p>Just now examined the thread! great work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jon</title>
		<link>http://www.rustyrazorblade.com/2008/05/mysql-time-delayed-replication/comment-page-1/#comment-25056</link>
		<dc:creator>jon</dc:creator>
		<pubDate>Sat, 14 Jun 2008 16:23:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.rustyrazorblade.com/?p=123#comment-25056</guid>
		<description>Benpi - 
I haven&#039;t looked at the MySQL source, but I can&#039;t imagine why it *wouldn&#039;t* be possible.  I just don&#039;t think it&#039;s a very high priority.

Obviously I like the idea, I said so in the above post :)</description>
		<content:encoded><![CDATA[<p>Benpi &#8211;<br />
I haven&#8217;t looked at the MySQL source, but I can&#8217;t imagine why it *wouldn&#8217;t* be possible.  I just don&#8217;t think it&#8217;s a very high priority.</p>
<p>Obviously I like the idea, I said so in the above post <img src='http://www.rustyrazorblade.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: benpi</title>
		<link>http://www.rustyrazorblade.com/2008/05/mysql-time-delayed-replication/comment-page-1/#comment-24989</link>
		<dc:creator>benpi</dc:creator>
		<pubDate>Fri, 13 Jun 2008 11:08:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.rustyrazorblade.com/?p=123#comment-24989</guid>
		<description>We can see a few tools floating around that implements delayed transaction by starting/stopping the replication thread on the slave. This method basically do the trick, but is indeed less than optimal. Not only because it&#039;s a hack, and lacks fine grained control, and impose episodic burst loads on the network and master rep thread.

It would be in fact _way_ more useful if the slaves could still receive the replication logs in real time, as with standard replication, but they could only delay the effective execution of those logs on their database replicas. So that we could have a very efficient way to recover up to the last working point on a slave (ie. to tell a slave : &quot;then now, dear slave, please apply every pending replog up to the transaction $nb, the one where the sysadmin borked the database / where some corruption happened&quot;), then promote the slave as the new main database server, and get back to normal operations.

One could imagine a pool of daisy chained slaves running each with an increased delay (ie. slave1 lagging 1/2 h, slave2 lagging 1 h, slave3 1.5 h etc) : that way, we could choose to recover from the nearest (lesser lagging) slave that still have clean data, even if we discover the corruption a bit late, and we would have a very fast and flexible recovery-from-human-error mechanism. That would be, practically, a kind of real-time incremental hot standby backups (with almost-no-time recover from disaster)

What do you think about such a delayed replication flow ? is this possible/implementable in MySQL ?</description>
		<content:encoded><![CDATA[<p>We can see a few tools floating around that implements delayed transaction by starting/stopping the replication thread on the slave. This method basically do the trick, but is indeed less than optimal. Not only because it&#8217;s a hack, and lacks fine grained control, and impose episodic burst loads on the network and master rep thread.</p>
<p>It would be in fact _way_ more useful if the slaves could still receive the replication logs in real time, as with standard replication, but they could only delay the effective execution of those logs on their database replicas. So that we could have a very efficient way to recover up to the last working point on a slave (ie. to tell a slave : &#8220;then now, dear slave, please apply every pending replog up to the transaction $nb, the one where the sysadmin borked the database / where some corruption happened&#8221;), then promote the slave as the new main database server, and get back to normal operations.</p>
<p>One could imagine a pool of daisy chained slaves running each with an increased delay (ie. slave1 lagging 1/2 h, slave2 lagging 1 h, slave3 1.5 h etc) : that way, we could choose to recover from the nearest (lesser lagging) slave that still have clean data, even if we discover the corruption a bit late, and we would have a very fast and flexible recovery-from-human-error mechanism. That would be, practically, a kind of real-time incremental hot standby backups (with almost-no-time recover from disaster)</p>
<p>What do you think about such a delayed replication flow ? is this possible/implementable in MySQL ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jon</title>
		<link>http://www.rustyrazorblade.com/2008/05/mysql-time-delayed-replication/comment-page-1/#comment-20411</link>
		<dc:creator>jon</dc:creator>
		<pubDate>Thu, 08 May 2008 20:33:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.rustyrazorblade.com/?p=123#comment-20411</guid>
		<description>I didn&#039;t even realize this went back 7 years.  Wow...</description>
		<content:encoded><![CDATA[<p>I didn&#8217;t even realize this went back 7 years.  Wow&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy Zawodny</title>
		<link>http://www.rustyrazorblade.com/2008/05/mysql-time-delayed-replication/comment-page-1/#comment-20407</link>
		<dc:creator>Jeremy Zawodny</dc:creator>
		<pubDate>Thu, 08 May 2008 14:22:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.rustyrazorblade.com/?p=123#comment-20407</guid>
		<description>I had completely forgot that I suggested that back in 2001.  Heh.</description>
		<content:encoded><![CDATA[<p>I had completely forgot that I suggested that back in 2001.  Heh.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xaprb</title>
		<link>http://www.rustyrazorblade.com/2008/05/mysql-time-delayed-replication/comment-page-1/#comment-20396</link>
		<dc:creator>Xaprb</dc:creator>
		<pubDate>Thu, 08 May 2008 01:10:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.rustyrazorblade.com/?p=123#comment-20396</guid>
		<description>It&#039;s useful enough, and enough people requested it, that Maatkit has a very elegant implementation of time-delayed replication.  It does NOT rely on Seconds_behind_master, which is buggy and unreliable; neither does it read binary logs, which is unacceptably expensive.</description>
		<content:encoded><![CDATA[<p>It&#8217;s useful enough, and enough people requested it, that Maatkit has a very elegant implementation of time-delayed replication.  It does NOT rely on Seconds_behind_master, which is buggy and unreliable; neither does it read binary logs, which is unacceptably expensive.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bighard</title>
		<link>http://www.rustyrazorblade.com/2008/05/mysql-time-delayed-replication/comment-page-1/#comment-20395</link>
		<dc:creator>bighard</dc:creator>
		<pubDate>Wed, 07 May 2008 20:38:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.rustyrazorblade.com/?p=123#comment-20395</guid>
		<description>been there, done that :)

we had a slave, lagging between 1-2hrs - not only for admin oopses, but also to recover from malicious user attacks.

since our traffic was hudge - during the day, the slave needed about the sime time to recover, as the lag was - eg, a 1h lag took 1h to catch up...

so every 15 minutes a perl script did start slave, checked if the lag is less than 2hrs - if it was, it did stop the slave, if it was larger, it left the slave running, and checked again in the next 15 minutes.</description>
		<content:encoded><![CDATA[<p>been there, done that <img src='http://www.rustyrazorblade.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>we had a slave, lagging between 1-2hrs &#8211; not only for admin oopses, but also to recover from malicious user attacks.</p>
<p>since our traffic was hudge &#8211; during the day, the slave needed about the sime time to recover, as the lag was &#8211; eg, a 1h lag took 1h to catch up&#8230;</p>
<p>so every 15 minutes a perl script did start slave, checked if the lag is less than 2hrs &#8211; if it was, it did stop the slave, if it was larger, it left the slave running, and checked again in the next 15 minutes.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

