<?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: Death of MySQL read replication highly exaggerated</title>
	<atom:link href="http://blogs.smugmug.com/don/2008/04/16/death-of-mysql-read-replication-highly-exaggerated/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.smugmug.com/don/2008/04/16/death-of-mysql-read-replication-highly-exaggerated/</link>
	<description>Thought stream from SmugMug's CEO &#38; Chief Geek</description>
	<lastBuildDate>Fri, 06 Nov 2009 22:21:22 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9-rare</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: mod converter</title>
		<link>http://blogs.smugmug.com/don/2008/04/16/death-of-mysql-read-replication-highly-exaggerated/comment-page-1/#comment-104493</link>
		<dc:creator>mod converter</dc:creator>
		<pubDate>Fri, 06 Nov 2009 16:01:53 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.smugmug.com/don/?p=213#comment-104493</guid>
		<description>Love it! You got me so excited to get one and start shooting video!  </description>
		<content:encoded><![CDATA[<p>Love it! You got me so excited to get one and start shooting video!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas Hurst</title>
		<link>http://blogs.smugmug.com/don/2008/04/16/death-of-mysql-read-replication-highly-exaggerated/comment-page-1/#comment-102708</link>
		<dc:creator>Thomas Hurst</dc:creator>
		<pubDate>Sat, 26 Apr 2008 06:45:32 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.smugmug.com/don/?p=213#comment-102708</guid>
		<description>At Newzbin, we operate the other way around; we have our own custom C daemon doing sorting, limiting, filtering etc, and giving us a list of ID&#039;s to go ask MySQL for.  We could squeeze memcached in there too, but I don&#039;t think it&#039;s going to be much of a win; primary key lookups aren&#039;t exactly tough :)

We use the same framework for stream processing, so we can do alerts for users when a search matches something new (or starts matching something old that&#039;s changed that they&#039;ve not seen before).

My main concern with replication, aside from it being awkward making sure you&#039;re talking to a current enough slave (we use a serialized counter to checkpoint critical db changes), is any long write queries on the master get serialized on slaves; have a 50s long &quot;DELETE FROM BigTable WHERE created_at &lt; really_old&quot;?  Well, now all your slaves are gonna sit doing that and nothing else for a minute or more, so you either give users stale data or hammer your master.

I guess we need some sort of service which replicates queries like this async.  Hurray, more infrastructure ;)</description>
		<content:encoded><![CDATA[<p>At Newzbin, we operate the other way around; we have our own custom C daemon doing sorting, limiting, filtering etc, and giving us a list of ID&#8217;s to go ask MySQL for.  We could squeeze memcached in there too, but I don&#8217;t think it&#8217;s going to be much of a win; primary key lookups aren&#8217;t exactly tough <img src='http://blogs.smugmug.com/don/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>We use the same framework for stream processing, so we can do alerts for users when a search matches something new (or starts matching something old that&#8217;s changed that they&#8217;ve not seen before).</p>
<p>My main concern with replication, aside from it being awkward making sure you&#8217;re talking to a current enough slave (we use a serialized counter to checkpoint critical db changes), is any long write queries on the master get serialized on slaves; have a 50s long &#8220;DELETE FROM BigTable WHERE created_at &lt; really_old&#8221;?  Well, now all your slaves are gonna sit doing that and nothing else for a minute or more, so you either give users stale data or hammer your master.</p>
<p>I guess we need some sort of service which replicates queries like this async.  Hurray, more infrastructure <img src='http://blogs.smugmug.com/don/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mike503</title>
		<link>http://blogs.smugmug.com/don/2008/04/16/death-of-mysql-read-replication-highly-exaggerated/comment-page-1/#comment-102600</link>
		<dc:creator>mike503</dc:creator>
		<pubDate>Thu, 17 Apr 2008 00:22:24 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.smugmug.com/don/?p=213#comment-102600</guid>
		<description>Sounds like you&#039;re using a two-fetch method - use MySQL for sorting, limiting, whatever else to get a list of IDs, then do read-through caching for the bulk of the row data using memcached and fill in the missing from the DB. Is that correct? That&#039;s been my strategy so far too, nice to know if other people have adopted it successfully :)</description>
		<content:encoded><![CDATA[<p>Sounds like you&#8217;re using a two-fetch method &#8211; use MySQL for sorting, limiting, whatever else to get a list of IDs, then do read-through caching for the bulk of the row data using memcached and fill in the missing from the DB. Is that correct? That&#8217;s been my strategy so far too, nice to know if other people have adopted it successfully <img src='http://blogs.smugmug.com/don/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
