<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Detecting Corrupt Data in MySQL Protocol</title>
	<atom:link href="http://feedblog.org/2008/06/23/detecting-corrupt-data-in-mysql-protocol/feed/" rel="self" type="application/rss+xml" />
	<link>http://feedblog.org/2008/06/23/detecting-corrupt-data-in-mysql-protocol/</link>
	<description>You may say I'm a dreamer, but I'm not the only one.</description>
	<lastBuildDate>Thu, 04 Mar 2010 00:34:59 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Mark Callaghan</title>
		<link>http://feedblog.org/2008/06/23/detecting-corrupt-data-in-mysql-protocol/#comment-11958</link>
		<dc:creator>Mark Callaghan</dc:creator>
		<pubDate>Tue, 24 Jun 2008 05:49:25 +0000</pubDate>
		<guid isPermaLink="false">http://feedblog.org/?p=1692#comment-11958</guid>
		<description>We (and many others) suffered from the recently fixed bug that could generate corruption in relay log events. In a few cases, the corrupt relay log events were executable. We will soon add checksums to binlog events to prevent that problem.

We have had at least one instance where the SQL sent from client to server was corrupted by the network hardware and TCP checksums did not catch the problem. Checksums in the client-server protocol are a great idea, but I am not sure how extensible the client-server protocol is. It is much easier for me to change server-server protocols than client-server protocol as there are at least two implementations of client-server (C library, JDBC).</description>
		<content:encoded><![CDATA[<p>We (and many others) suffered from the recently fixed bug that could generate corruption in relay log events. In a few cases, the corrupt relay log events were executable. We will soon add checksums to binlog events to prevent that problem.</p>
<p>We have had at least one instance where the SQL sent from client to server was corrupted by the network hardware and TCP checksums did not catch the problem. Checksums in the client-server protocol are a great idea, but I am not sure how extensible the client-server protocol is. It is much easier for me to change server-server protocols than client-server protocol as there are at least two implementations of client-server (C library, JDBC).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Burton</title>
		<link>http://feedblog.org/2008/06/23/detecting-corrupt-data-in-mysql-protocol/#comment-11957</link>
		<dc:creator>Kevin Burton</dc:creator>
		<pubDate>Tue, 24 Jun 2008 01:51:45 +0000</pubDate>
		<guid isPermaLink="false">http://feedblog.org/?p=1692#comment-11957</guid>
		<description>Kevin,

Holy crap.... that&#039;s a crazy story.

I&#039;ve heard similar horror stories before about binlog corruption from other companies.

From the number of comments this post is getting so quickly it sounds like a lot of people are thinking about this....

Anyone have any other horror stories?</description>
		<content:encoded><![CDATA[<p>Kevin,</p>
<p>Holy crap&#8230;. that&#8217;s a crazy story.</p>
<p>I&#8217;ve heard similar horror stories before about binlog corruption from other companies.</p>
<p>From the number of comments this post is getting so quickly it sounds like a lot of people are thinking about this&#8230;.</p>
<p>Anyone have any other horror stories?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Marks</title>
		<link>http://feedblog.org/2008/06/23/detecting-corrupt-data-in-mysql-protocol/#comment-11956</link>
		<dc:creator>Kevin Marks</dc:creator>
		<pubDate>Tue, 24 Jun 2008 01:48:15 +0000</pubDate>
		<guid isPermaLink="false">http://feedblog.org/?p=1692#comment-11956</guid>
		<description>We had at least one scary instance of this at Technorati - an UPDATE writing to the blogs table got terminated before its WHERE clause, thereby writing the same blog title to an entire database shard (at the time, a quarter of the blogs in the index). That the blog title was something like &quot;Huggable, kissable, loveable&quot; made it amusing, as every results page showed that for a quarter of the results. We managed to propagate real blog titles back from memcached, slaves and other caches, but it was a very stressful day.</description>
		<content:encoded><![CDATA[<p>We had at least one scary instance of this at Technorati &#8211; an UPDATE writing to the blogs table got terminated before its WHERE clause, thereby writing the same blog title to an entire database shard (at the time, a quarter of the blogs in the index). That the blog title was something like &#8220;Huggable, kissable, loveable&#8221; made it amusing, as every results page showed that for a quarter of the results. We managed to propagate real blog titles back from memcached, slaves and other caches, but it was a very stressful day.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xaprb</title>
		<link>http://feedblog.org/2008/06/23/detecting-corrupt-data-in-mysql-protocol/#comment-11955</link>
		<dc:creator>Xaprb</dc:creator>
		<pubDate>Tue, 24 Jun 2008 01:41:31 +0000</pubDate>
		<guid isPermaLink="false">http://feedblog.org/?p=1692#comment-11955</guid>
		<description>I&#039;ve been bitten so badly by this problem (I suspect, but can&#039;t prove -- see the bug report mentioned above) that I&#039;d almost settle for a magic number every so many bytes.  0xDEADBEEF, anyone?  The fact that the protocol is unchecked has probably cost a lot of money over the years.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve been bitten so badly by this problem (I suspect, but can&#8217;t prove &#8212; see the bug report mentioned above) that I&#8217;d almost settle for a magic number every so many bytes.  0xDEADBEEF, anyone?  The fact that the protocol is unchecked has probably cost a lot of money over the years.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arjen Lentz</title>
		<link>http://feedblog.org/2008/06/23/detecting-corrupt-data-in-mysql-protocol/#comment-11954</link>
		<dc:creator>Arjen Lentz</dc:creator>
		<pubDate>Tue, 24 Jun 2008 00:23:11 +0000</pubDate>
		<guid isPermaLink="false">http://feedblog.org/?p=1692#comment-11954</guid>
		<description>There should be a CRC at over protocol blocks. CRC-32 would work fine and doesn&#039;t require much computation. CRC is specifically designed to pick up bitflips, missing bytes and the like. It simply checks whether a single block was transmitted intact.

MD5/SHA1 is complete overkill for this purpose. It was designed to allow signatures to be compared against eachother, equivalent to the original datasets. That&#039;s a whole different issue.</description>
		<content:encoded><![CDATA[<p>There should be a CRC at over protocol blocks. CRC-32 would work fine and doesn&#8217;t require much computation. CRC is specifically designed to pick up bitflips, missing bytes and the like. It simply checks whether a single block was transmitted intact.</p>
<p>MD5/SHA1 is complete overkill for this purpose. It was designed to allow signatures to be compared against eachother, equivalent to the original datasets. That&#8217;s a whole different issue.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: burtonator</title>
		<link>http://feedblog.org/2008/06/23/detecting-corrupt-data-in-mysql-protocol/#comment-11953</link>
		<dc:creator>burtonator</dc:creator>
		<pubDate>Mon, 23 Jun 2008 22:19:03 +0000</pubDate>
		<guid isPermaLink="false">http://feedblog.org/?p=1692#comment-11953</guid>
		<description>Harrison,

I agree it&#039;s less common but becoming more common as switches go commodity. 

Also, some of this stuff isn&#039;t zero copy so memory corruption can come into play....

A hashcode would nail this stuff but only if it wasn&#039;t in the last memcpy in the target MySQL box......

Kevin</description>
		<content:encoded><![CDATA[<p>Harrison,</p>
<p>I agree it&#8217;s less common but becoming more common as switches go commodity. </p>
<p>Also, some of this stuff isn&#8217;t zero copy so memory corruption can come into play&#8230;.</p>
<p>A hashcode would nail this stuff but only if it wasn&#8217;t in the last memcpy in the target MySQL box&#8230;&#8230;</p>
<p>Kevin</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Morgan Tocker</title>
		<link>http://feedblog.org/2008/06/23/detecting-corrupt-data-in-mysql-protocol/#comment-11951</link>
		<dc:creator>Morgan Tocker</dc:creator>
		<pubDate>Mon, 23 Jun 2008 20:47:45 +0000</pubDate>
		<guid isPermaLink="false">http://feedblog.org/?p=1692#comment-11951</guid>
		<description>And it does come into play...
http://bugs.mysql.com/bug.php?id=25737

It will be a whole lot worse with row based replication, since simple bit flips may still leave the replication events still syntactically correct.</description>
		<content:encoded><![CDATA[<p>And it does come into play&#8230;<br />
<a href="http://bugs.mysql.com/bug.php?id=25737" rel="nofollow">http://bugs.mysql.com/bug.php?id=25737</a></p>
<p>It will be a whole lot worse with row based replication, since simple bit flips may still leave the replication events still syntactically correct.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harrison</title>
		<link>http://feedblog.org/2008/06/23/detecting-corrupt-data-in-mysql-protocol/#comment-11950</link>
		<dc:creator>Harrison</dc:creator>
		<pubDate>Mon, 23 Jun 2008 20:32:30 +0000</pubDate>
		<guid isPermaLink="false">http://feedblog.org/?p=1692#comment-11950</guid>
		<description>I suspect that since the MySQL protocol is normally used over the local LAN it would be much less common than something like S3 (since it is always over a WAN).

I wonder how much enabling compression or SSL would help to check for this sort of thing.</description>
		<content:encoded><![CDATA[<p>I suspect that since the MySQL protocol is normally used over the local LAN it would be much less common than something like S3 (since it is always over a WAN).</p>
<p>I wonder how much enabling compression or SSL would help to check for this sort of thing.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
