<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MySQL Performance Blog &#187; xtradb</title>
	<atom:link href="http://www.mysqlperformanceblog.com/category/xtradb/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mysqlperformanceblog.com</link>
	<description>Everything about MySQL Performance</description>
	<lastBuildDate>Sat, 21 Nov 2009 03:11:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Speaking at the LA MySQL Meetup &#8211; 18th November</title>
		<link>http://www.mysqlperformanceblog.com/2009/11/01/speaking-at-the-la-mysql-meetup-18th-november/</link>
		<comments>http://www.mysqlperformanceblog.com/2009/11/01/speaking-at-the-la-mysql-meetup-18th-november/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 17:35:44 +0000</pubDate>
		<dc:creator>Morgan Tocker</dc:creator>
				<category><![CDATA[Innodb]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[training]]></category>
		<category><![CDATA[xtradb]]></category>

		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=1478</guid>
		<description><![CDATA[
A recent photo from Highload.ru
I said in my last post, that we&#8217;re interested in speaking at MySQL meetups, and I&#8217;m happy to say that the Los Angeles MySQL Meetup has taken us up on the offer.
On November 18th, I&#8217;ll be giving an introductory talk on InnoDB/XtraDB Performance Optimization.  I will be the second speaker, with [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; padding: 4px; margin: 5px"><img title="Morgan speaking at Highload.ru" src="http://tocker.id.au/files/percona/highload_talk.jpg" alt="Morgan speaking at Highload.ru" width="300" height="192" /><br />
A recent photo from Highload.ru</div>
<p>I said in my <a href="../2009/10/16/training-updates/">last post</a>, that we&#8217;re interested in speaking at MySQL meetups, and I&#8217;m happy to say that the Los Angeles MySQL Meetup has taken us up on the offer.</p>
<p>On November 18th, I&#8217;ll be giving an introductory talk on <a href="http://www.meetup.com/lamysql/calendar/11742534/">InnoDB/XtraDB Performance Optimization</a>.  I will be the second speaker, with <strong>Carl Gelbart</strong> first speaking on Infobright.</p>
<p>What brings me to LA?  On the same day (18th Nov) I&#8217;ll be teaching a one day class on <a href="http://percona-ca-la.eventbrite.com/">Performance Optimization for MySQL with InnoDB and XtraDB</a>.  If you haven&#8217;t signed up yet &#8211; spaces are still available.</p>
    <hr noshade style="margin:0;height:1px" />
    <p>Entry posted by Morgan Tocker |
      <a href="http://www.mysqlperformanceblog.com/2009/11/01/speaking-at-the-la-mysql-meetup-18th-november/#comments">No comment</a></p>
    <p>Add to: <a href="http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/11/01/speaking-at-the-la-mysql-meetup-18th-november/&amp;title=Speaking at the LA MySQL Meetup &#8211; 18th November" title="Bookmark this post on del.icio.us"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png" alt="delicious" /></a> | <a href="http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/11/01/speaking-at-the-la-mysql-meetup-18th-november/&amp;title=Speaking at the LA MySQL Meetup &#8211; 18th November" title="Digg this post on Digg.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png" alt="digg" /></a> | <a href="http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/11/01/speaking-at-the-la-mysql-meetup-18th-november/&amp;title=Speaking at the LA MySQL Meetup &#8211; 18th November" title="Submit this post on reddit.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png" alt="reddit" /></a> | <a href="http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/11/01/speaking-at-the-la-mysql-meetup-18th-november/&amp;T=Speaking at the LA MySQL Meetup &#8211; 18th November" title="Vote for this article on Netscape"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif" alt="netscape" /></a> | <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/11/01/speaking-at-the-la-mysql-meetup-18th-november/&amp;title=Speaking at the LA MySQL Meetup &#8211; 18th November" title="Add to Google Bookmarks"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png" alt="Google Bookmarks" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.mysqlperformanceblog.com/2009/11/01/speaking-at-the-la-mysql-meetup-18th-november/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>State of the art: Galera &#8211; synchronous replication for InnoDB</title>
		<link>http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/</link>
		<comments>http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 15:08:58 +0000</pubDate>
		<dc:creator>Vadim</dc:creator>
				<category><![CDATA[High Availability]]></category>
		<category><![CDATA[Innodb]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[replication]]></category>
		<category><![CDATA[xtradb]]></category>

		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=1556</guid>
		<description><![CDATA[First time I heard about Galera on Percona Performance Conference 2009, Seppo Jaakola was presenting &#8220;Galera: Multi-Master Synchronous MySQL Replication Clusters&#8221;. It was impressed as I personally always wanted it for InnoDB, but we had it in plans at the bottom of the list, as this is very hard to implement properly.
The idea by itself [...]]]></description>
			<content:encoded><![CDATA[<p>First time I heard about Galera on Percona Performance Conference 2009, Seppo Jaakola was presenting <a href="http://www.percona.com/ppc2009/PPC2009_galera.pdf">&#8220;Galera: Multi-Master Synchronous MySQL Replication Clusters&#8221;</a>. It was impressed as I personally always wanted it for InnoDB, but we had it in plans at the bottom of the list, as this is very hard to implement properly.<br />
The idea by itself is not new, I remember synchronous replication was announced for SolidDB on MySQL UC 2007, but later the product was killed by IBM.</p>
<p>So long time after PPC 2009 there was available version mysql-galera-0.6, which had serious flow, to setup a new node you had to take down whole cluster. And all this time Codership ( company that develops Galera) was working on 0.7 release that introduces node propagation keeping cluster online. You can play with 0.7pre release by yourself <a href="http://www.codership.com/en/downloads/galera">MySQL/Galera Release 0.7pre</a>. </p>
<p>In current version propagation is done by mysqldump from one of nodes (&#8221;donor&#8221;). In next release Codership is going to support LVM snapshot and xtrabackup which will make the setup of new node even easier. The current annoyance I see is that if you shutdown one node for short period of time for quick maintenance, after  start, the node has to load whole mysqldump, like it is new empty node. I hope Codership guys will address this also.<br />
Another thing I miss for now is support of InnoDB-plugin, which as we know performs much better than standard InnoDB &reg;.</p>
<p>So what is so interesting about Galera. Couple things:</p>
<p>- High Availability. Any of N standby nodes are available immediately when main node fails. Galera is serious pretender to be included to the list, Yves put recently, <a href="http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-%e2%80%93-the-questions/">http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-%e2%80%93-the-questions/</a>. I am not sure how many nines it will provide <img src='http://www.mysqlperformanceblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , but efforts on test setup and deployment should be comparable with MMM setup.</p>
<p>- Scale Writes. Galera allows to write to any of N nodes and automatically propagate to other nodes. It sounds too ideal, and there is drawback &#8211; with increasing amount of nodes you write to, your transaction rollback rate may increase, especially if you working on the same dataset. You can find some results on <a href="http://www.codership.com/en/content/benchmarking-write-scalability">Codership&#8217;s page</a>,  and I am going to run my own benchmarks also. Also from benchmark you can see that communication overhead maybe significant for short writes.</p>
<p>- Scale Reads. It can be done with regular replication, but  with synchronous your &#8220;slaves-nodes&#8221; are in the same state, there is no &#8220;slave behind&#8221;. When you read from any slave, you read actual data. Although it also has serious drawback &#8211;  our cluster is fast as fast the &#8220;weakest&#8221; node in the chain. So if one node gets overloaded and performance degrades, the same happens with whole cluster.</p>
<p>- Heterogeneous-database replication. It is not here yet, and I do not know what&#8217;s in Codership roadmap, but group manager protocol in Galera is database independent, and it&#8217;s only matter of database drivers. For InnoDB currently it is set of patches, and I see it is quite possible to make the same for Postgres. So MySQL-Postgres cluster setup is not so far ahead <img src='http://www.mysqlperformanceblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>On <a href="http://www.codership.com/en/company/about">&#8220;Company page&#8221; Codership says</a> their goal is &#8220;to promote and exploit the latest developments in computer science to produce fast and scalable synchronous replication solution that &#8220;just works&#8221; for databases and similar applications&#8221;, which I think they have success in. Implementing fast, scalable and working group communication and transaction manager is the art.</p>
<p>As for now I would not put 0.7 release into production yet, but you may seriously consider to play with it in test environment, and report bugs to Codership team, they are very responsive.<br />
I am waiting for next releases and looking to make integration with XtraDB.</p>
    <hr noshade style="margin:0;height:1px" />
    <p>Entry posted by Vadim |
      <a href="http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/#comments">6 comments</a></p>
    <p>Add to: <a href="http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/&amp;title=State of the art: Galera &#8211; synchronous replication for InnoDB" title="Bookmark this post on del.icio.us"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png" alt="delicious" /></a> | <a href="http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/&amp;title=State of the art: Galera &#8211; synchronous replication for InnoDB" title="Digg this post on Digg.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png" alt="digg" /></a> | <a href="http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/&amp;title=State of the art: Galera &#8211; synchronous replication for InnoDB" title="Submit this post on reddit.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png" alt="reddit" /></a> | <a href="http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/&amp;T=State of the art: Galera &#8211; synchronous replication for InnoDB" title="Vote for this article on Netscape"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif" alt="netscape" /></a> | <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/&amp;title=State of the art: Galera &#8211; synchronous replication for InnoDB" title="Add to Google Bookmarks"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png" alt="Google Bookmarks" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>XtraDB Amazon Image</title>
		<link>http://www.mysqlperformanceblog.com/2009/10/25/xtradb-amazon-image/</link>
		<comments>http://www.mysqlperformanceblog.com/2009/10/25/xtradb-amazon-image/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 04:36:49 +0000</pubDate>
		<dc:creator>Aleksandr Kuzminsky</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[xtradb]]></category>

		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=1547</guid>
		<description><![CDATA[For those who use Amazon EC2 service and were anxious about having XtraDB ready to launch there is a good news.
We created a public AMI (Amazon Machine Image) with XtraDB release 8 installed on CentOS 5.3.
How to use it.
First make sure it is avaiable.
PLAIN TEXT
CODE:




$ ec2-describe-images ami-4701e22e


IMAGE   ami-4701e22e    xtradb/centos-5.3-x86_64.fs.manifest.xml        834362721059    available       public          x86_64  machine


$ 






Run [...]]]></description>
			<content:encoded><![CDATA[<p>For those who use Amazon EC2 service and were anxious about having XtraDB ready to launch there is a good news.</p>
<p>We created a public AMI (Amazon Machine Image) with XtraDB release 8 installed on CentOS 5.3.</p>
<p>How to use it.</p>
<p>First make sure it is avaiable.</p>
<div class="igBar"><span id="lcode-4"><a href="#" onclick="javascript:showPlainTxt('code-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-4">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ ec2-describe-images ami-4701e22e</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">IMAGE   ami-4701e22e    xtradb/centos-<span style="color:#800000;color:#800000;">5</span>.<span style="color:#800000;color:#800000;">3</span>-x86_64.<span style="">fs</span>.<span style="">manifest</span>.<span style="">xml</span>        <span style="color:#800000;color:#800000;">834362721059</span>    available       public          x86_64  machine</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Run it. It is built for x86_64 plaform, so allowed types are m1.large, m1.xlarge and c1.xlarge</p>
<div class="igBar"><span id="lcode-5"><a href="#" onclick="javascript:showPlainTxt('code-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-5">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ ec2-run-instances ami-4701e22e -t m1.<span style="">large</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">RESERVATION&nbsp; &nbsp; &nbsp;r-46b3432e&nbsp; &nbsp; &nbsp; <span style="color:#800000;color:#800000;">834362721059</span>&nbsp; &nbsp; default</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">INSTANCE&nbsp; &nbsp; &nbsp; &nbsp; i-ecc74084&nbsp; &nbsp; &nbsp; ami-4701e22e&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pending&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#800000;color:#800000;">0</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;m1.<span style="">large</span>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#800000;color:#800000;">2009</span>-<span style="color:#800000;color:#800000;">10</span>-25T18:<span style="color:#800000;color:#800000;">31</span>:<span style="color:#800000;color:#800000;">06</span>+<span style="color:#800000;color:#800000;">0000</span>&nbsp; &nbsp; &nbsp; &nbsp; us-east-1c </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Wait till the instance starts</p>
<div class="igBar"><span id="lcode-6"><a href="#" onclick="javascript:showPlainTxt('code-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-6">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ ec2-describe-instances i-ecc74084</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">RESERVATION&nbsp; &nbsp; &nbsp;r-46b3432e&nbsp; &nbsp; &nbsp; <span style="color:#800000;color:#800000;">834362721059</span>&nbsp; &nbsp; default</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">INSTANCE&nbsp; &nbsp; &nbsp; &nbsp; i-ecc74084&nbsp; &nbsp; &nbsp; ami-4701e22e&nbsp; &nbsp; ec2-<span style="color:#800000;color:#800000;">75</span>-<span style="color:#800000;color:#800000;">101</span>-<span style="color:#800000;color:#800000;">203</span>-<span style="color:#800000;color:#800000;">143</span>.<span style="">compute</span>-<span style="color:#800000;color:#800000;">1</span>.<span style="">amazonaws</span>.<span style="">com</span>&nbsp; &nbsp; &nbsp; domU-<span style="color:#800000;color:#800000;">12</span>-<span style="color:#800000;color:#800000;">31</span>-<span style="color:#800000;color:#800000;">39</span>-0A-<span style="color:#800000;color:#800000;">26</span>-<span style="color:#800000;color:#800000;">22</span>.<span style="">compute</span>-<span style="color:#800000;color:#800000;">1</span>.<span style="">internal</span>&nbsp; &nbsp; &nbsp; &nbsp;running&nbsp; &nbsp; &nbsp; <span style="color:#800000;color:#800000;">0</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">m1.<span style="">large</span>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#800000;color:#800000;">2009</span>-<span style="color:#800000;color:#800000;">10</span>-25T18:<span style="color:#800000;color:#800000;">31</span>:<span style="color:#800000;color:#800000;">06</span>+<span style="color:#800000;color:#800000;">0000</span>&nbsp; &nbsp; &nbsp; &nbsp; us-east-1c </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Now it is up and ready.</p>
    <hr noshade style="margin:0;height:1px" />
    <p>Entry posted by Aleksandr Kuzminsky |
      <a href="http://www.mysqlperformanceblog.com/2009/10/25/xtradb-amazon-image/#comments">6 comments</a></p>
    <p>Add to: <a href="http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/10/25/xtradb-amazon-image/&amp;title=XtraDB Amazon Image" title="Bookmark this post on del.icio.us"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png" alt="delicious" /></a> | <a href="http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/10/25/xtradb-amazon-image/&amp;title=XtraDB Amazon Image" title="Digg this post on Digg.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png" alt="digg" /></a> | <a href="http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/10/25/xtradb-amazon-image/&amp;title=XtraDB Amazon Image" title="Submit this post on reddit.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png" alt="reddit" /></a> | <a href="http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/10/25/xtradb-amazon-image/&amp;T=XtraDB Amazon Image" title="Vote for this article on Netscape"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif" alt="netscape" /></a> | <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/10/25/xtradb-amazon-image/&amp;title=XtraDB Amazon Image" title="Add to Google Bookmarks"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png" alt="Google Bookmarks" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.mysqlperformanceblog.com/2009/10/25/xtradb-amazon-image/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Tuning for heavy writing workloads</title>
		<link>http://www.mysqlperformanceblog.com/2009/10/14/tuning-for-heavy-writing-workloads/</link>
		<comments>http://www.mysqlperformanceblog.com/2009/10/14/tuning-for-heavy-writing-workloads/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 00:06:55 +0000</pubDate>
		<dc:creator>Yasufumi</dc:creator>
				<category><![CDATA[Innodb]]></category>
		<category><![CDATA[benchmarks]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[tuning]]></category>
		<category><![CDATA[xtradb]]></category>

		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=1376</guid>
		<description><![CDATA[For the my previous post, there was comment to suggest to test db_STRESS benchmark on XtraDB by Dimitri. And I tested and tuned for the benchmark. I will show you the tunings. It should be also tuning procedure for general heavy writing workloads.
At first, &#60;tuning peak performance&#62;. The next, &#60;tuning purge operation&#62; to stabilize performance  [...]]]></description>
			<content:encoded><![CDATA[<p>For the <a href="http://www.mysqlperformanceblog.com/2009/09/15/which-adaptive-should-we-use/">my previous post</a>, there was comment to suggest to test <a href="http://dimitrik.free.fr/">db_STRESS benchmark</a> on XtraDB by Dimitri. And I tested and tuned for the benchmark. I will show you the tunings. It should be also tuning procedure for general heavy writing workloads.</p>
<p>At first, &lt;tuning peak performance&gt;. The next, &lt;tuning purge operation&gt; to stabilize performance  and to avoid decreasing performance.</p>
<p><strong>&lt;test condition&gt;</strong></p>
<p>Server:<br />
PowerEdge R900, Four Quad Core E7320 Xeon, 2.13GHz, 32GB Memory, 16X2GB, 667MHz</p>
<p>db_STRESS:<br />
32 sessions, RW=1, dbsize = 1000000, no thinktime</p>
<p>XtraDB: (mysql-5.1.39 + XtraDB-1.0.4-current)<br />
innodb_io_capacity = 4000<br />
innodb_support_xa = false<br />
innodb_file_per_table = true<br />
innodb_buffer_pool_size = 16G<br />
innodb_read_io_threads = 8<br />
innodb_write_io_threads = 8<br />
innodb_flush_log_at_trx_commit = 2<br />
innodb_log_buffer_size = 128M<br />
innodb_log_file_size = 512M<br />
innodb_log_files_in_group = 2<br />
innodb_max_dirty_pages_pct = 90<br />
innodb_flush_method = O_DIRECT<br />
(the followings are XtraDB specific general settings)<br />
innodb_ibuf_active_contract = 1<br />
innodb_adaptive_flushing = false<br />
innodb_adaptive_checkpoint = estimate</p>
<p><strong>&lt;tuning peak performance&gt;</strong></p>
<p>At first, tuning the peak performance to use CPU and IO resource more effectively. To avoid mutex/lock contentions are good to use more CPU resource of many CPUs.</p>
<p><img class="alignnone size-full wp-image-1381" title="purge_thread_test_1ST_TUNE" src="http://www.mysqlperformanceblog.com/wp-content/uploads/2009/10/purge_thread_test_1ST_TUNE.png" alt="purge_thread_test_1ST_TUNE" width="299" height="238" /></p>
<p>This graph shows the peak performance in tps of db_STRESS.</p>
<p>At current settings, <strong>"base"</strong> in the graph is the perfomance. We can confirm the mutex/lock contention roughly by the SEMAPHORES sction of SHOW INNODB STATUS output.</p>
<p><em>"xx-lock on RW-latch at 0x7f2ff40a3dc0 created in file dict/dict0dict.c line 1627"</em></p>
<p>It is index-&gt;lock, viewing the source file (and it may be HISTORY table). This is the lock for each index tree. We may be able to disperse the lock using by the partitioning of MySQL. Added the following clause to the HISTORY table definition.</p>
<p style="text-align: center;"><strong>"PARTITION BY HASH(REF_OBJECT) PARTITIONS 16"</strong></p>
<p>Now the performance became to <strong>"+partitioned"</strong> in the graph. Looking the SEMAPHORES section again,</p>
<p><em>"has waited at handler/ha_innodb.cc line 7275 for 0.0000 seconds the semaphore:<br />
X-lock on RW-latch at 0xd30320 created in file dict/dict0dict.c line 623"</em></p>
<p>may be the line which appears for the most times (it is dict_operation_lock). It may be partition specific lock contention. The current XtraDB has the variable to tune the contention.</p>
<p style="text-align: center;"><strong>innodb_stats_update_need_lock = 0</strong> (default 1)</p>
<p>It skip the updating statistics which needs the lock. (it only affects for "Data_free:" value of TABLE STATS). And the performance became <strong>"+skip_stats"</strong> in the graph.  Then, the next contention at SEMAPHORES section is...</p>
<p><em>"Mutex at 0x1b3e3e78 created file trx/trx0rseg.c line 167"</em></p>
<p>may be remarkable (it is rseg-&gt;mutex). The mutex is for each rollback segments, so we can increase the rsegs to solve the contention problem. XtraDB can increase the rseg.</p>
<p style="text-align: center;"><strong>innodb_extra_rsegments = 64</strong> (affects to initialization of InnoDB)</p>
<p>Recreated database files with the parameter. Then the performance became <strong>"+rsegs64"</strong>. At last, the next contention may be <em>"Mutex at 0x28ce8e0 created file srv/srv0srv.c line 982". </em>It is kernel_mutex, currently we don't have proper solution for that. The setting seems to be enough for now.</p>
<p><strong>&lt;tuning purge operation&gt;</strong></p>
<p>Next, looking the sequential result in more long term.</p>
<p>The next problem is "History list length" growing to huge size. The value is the number of entries in rollback segment. The entries are used for consistent reading of the older transactions. They can be removed when any transactions doesn't refer the entry. This removing operation for the entries is called "purge" in InnoDB. The purge operation should be done enough on time, because the huge history list affects to performance.</p>
<p>Basically, the purging is done by master_thread (general background thread of InnoDB). The huge history list makes the purge operation slow, and it interferes  with the other tasks of the master_thread (e.g. flushing dirty blocks, treating insert buffer, etc...). <a href="http://dimitrik.free.fr/blog/index.html">Dimitri</a> implemented a purge_thread to devote to the purging, and also XtraDB has similar purge_thread. Though it seems to make the throughput stabilize, it is not enough still for heavy update workloads. A single purge_thread on one CPU is not enough for updates from user threads on the all of other CPUs.</p>
<p>XtraDB can increase the purge_threads from the next release.</p>
<p style="text-align: center;"><strong>innodb_use_purge_thread = 4</strong></p>
<p style="text-align: left;">seems to be enough for this workload on the server.</p>
<p style="text-align: left;">The first graph of followings is sequential throughput [tps] up to 3500 sec.</p>
<p><img class="alignnone size-full wp-image-1388" title="purge_thread_test_TPS" src="http://www.mysqlperformanceblog.com/wp-content/uploads/2009/10/purge_thread_test_TPS.png" alt="purge_thread_test_TPS" width="675" height="377" /></p>
<p>The next is tracking the "History list length" at the same time.</p>
<p><img class="alignnone size-full wp-image-1389" title="purge_thread_test_HIST_LENGTH" src="http://www.mysqlperformanceblog.com/wp-content/uploads/2009/10/purge_thread_test_HIST_LENGTH.png" alt="purge_thread_test_HIST_LENGTH" width="675" height="377" /></p>
<pre>"Norm 1.0.4": Normal InnoDB Plugin 1.0.4 without XtraDB specific options
"xtra p_t 0": XtraDB 1.0.4-new (no purge_thread)
"xtra p_t 1": XtraDB 1.0.4-new (single purge_thread similar to Dimitri's)
"xtra p_t 4": XtraDB 1.0.4-new (4 purge threads)</pre>
<p>The graphs show...</p>
<ul>
<li>The purge thread (&gt; 0) helps to stabilize the throughput greatly.</li>
<li>Increasing the purge threads can suppress the strong growing of the hitory list</li>
<li>The adaptive checkpoint "estimate" needs the purge_thread... (than the adaptive_flushing does)</li>
</ul>
<p>And the last 300secs' average tps are...</p>
<pre>"Norm 1.0.4": 5725.47
"xtra p_t 0": 4699.33
"xtra p_t 1": 7130.3
"xtra p_t 4": 9118    (about 60%up from Normal Plugin 1.0.4)</pre>
<p>In the end, the faster and more stable performance of db_STRESS benchmark is obtained by these tunings of XtraDB.</p>
<p>-----------------------------------------</p>
<p>(Added 2009.10.29)</p>
<p>&lt;<strong>FAQ: Is XtraDB slower than Plugin?</strong>&gt;</p>
<p>I'd like to say <strong>"no"</strong> to this question. We have been adding many tuning options to XtraDB. But they are effective not for all cases, sometimes the performance may get worse because of "not proper" or "too much value". We should choose the options correctly. XtraDB is based on InnoDB Plugin and we can set XtraDB same to InnoDB Plugin at least. The following graphs are results of XtraDB and Plugin with same options and same database.</p>
<p>top-left (same condition to above graphs):<br />
innodb_flush_log_at_trx_commit = 2<br />
innodb_doublewrite = true</p>
<p>top-right:<br />
innodb_flush_log_at_trx_commit = 1<br />
innodb_doublewrite = true</p>
<p>bottom-left:<br />
innodb_flush_log_at_trx_commit = 2<br />
innodb_doublewrite = false</p>
<p>bottom-right:<br />
innodb_flush_log_at_trx_commit = 1<br />
innodb_doublewrite = false</p>
<p><img class="alignnone size-full wp-image-1570" title="purge_thread_test_2_TPS" src="http://www.mysqlperformanceblog.com/wp-content/uploads/2009/10/purge_thread_test_2_TPS.png" alt="purge_thread_test_2_TPS" width="952" height="566" /></p>
<p>It seems that XtraDB is not slower than Plugin here at least.</p>
<p><strong><em>We can start tuning based on these performances using XtraDB specific options!</em></strong></p>
<p>Why do you make XtraDB slower than Plugin? <img src='http://www.mysqlperformanceblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
    <hr noshade style="margin:0;height:1px" />
    <p>Entry posted by Yasufumi |
      <a href="http://www.mysqlperformanceblog.com/2009/10/14/tuning-for-heavy-writing-workloads/#comments">9 comments</a></p>
    <p>Add to: <a href="http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/10/14/tuning-for-heavy-writing-workloads/&amp;title=Tuning for heavy writing workloads" title="Bookmark this post on del.icio.us"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png" alt="delicious" /></a> | <a href="http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/10/14/tuning-for-heavy-writing-workloads/&amp;title=Tuning for heavy writing workloads" title="Digg this post on Digg.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png" alt="digg" /></a> | <a href="http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/10/14/tuning-for-heavy-writing-workloads/&amp;title=Tuning for heavy writing workloads" title="Submit this post on reddit.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png" alt="reddit" /></a> | <a href="http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/10/14/tuning-for-heavy-writing-workloads/&amp;T=Tuning for heavy writing workloads" title="Vote for this article on Netscape"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif" alt="netscape" /></a> | <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/10/14/tuning-for-heavy-writing-workloads/&amp;title=Tuning for heavy writing workloads" title="Add to Google Bookmarks"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png" alt="Google Bookmarks" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.mysqlperformanceblog.com/2009/10/14/tuning-for-heavy-writing-workloads/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Percona welcomes Yves Trudeau and Fernando Ipar</title>
		<link>http://www.mysqlperformanceblog.com/2009/10/08/percona-welcomes-yves-trudeau-and-fernando-ipar/</link>
		<comments>http://www.mysqlperformanceblog.com/2009/10/08/percona-welcomes-yves-trudeau-and-fernando-ipar/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 18:21:53 +0000</pubDate>
		<dc:creator>Baron Schwartz</dc:creator>
				<category><![CDATA[announce]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[xtradb]]></category>
		<category><![CDATA[drbd]]></category>
		<category><![CDATA[Fernando Ipar]]></category>
		<category><![CDATA[Matt Yonkovit]]></category>
		<category><![CDATA[MySQL Cluster]]></category>
		<category><![CDATA[WaffleGrid]]></category>
		<category><![CDATA[Yves Trudeau]]></category>

		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=1303</guid>
		<description><![CDATA[I'm happy to extend a warm welcome to two new members of the Percona team.
First is Yves Trudeau, about whom I can say many things:

One of the top MySQL Cluster (NDB Cluster) experts in the world.
An expert on all things High Availability, including DRBD and Heartbeat.
Many years of experience with Huge Data.
Half of the Waffle [...]]]></description>
			<content:encoded><![CDATA[<p>I'm happy to extend a warm welcome to two new members of the Percona team.</p>
<p>First is Yves Trudeau, about whom I can say many things:</p>
<ul>
<li>One of the top MySQL Cluster (NDB Cluster) experts in the world.</li>
<li>An expert on all things High Availability, including DRBD and Heartbeat.</li>
<li>Many years of experience with Huge Data.</li>
<li>Half of the Waffle Grid team.</li>
<li>A really nice person!</li>
</ul>
<p>Yves joins us after a tenure of several years as a senior consultant at Sun/MySQL.  Together with Matt Yonkovit, he plans to work on WaffleGrid (but as a new project under a new name, to be determined), and integration with XtraDB.  Yves lives in Quebec with his family.</p>
<p>Next is Fernando Ipar.  Fernando is our first dedicated Shift Support Captain<sup>[1]</sup>.  Fernando specializes in MySQL, GNU/Linux, systems administration, and high availability.  Fernando has been involved in computer programming since he was 11, and in Open Source since 2001.  He loves shade-grown coffee, music, and natural history.  He lives in Uruguay with his wife and family.  Fernando brightens our IRC channel with his helpful and cheerful presence!</p>
<p>Welcome, Yves and Fernando!</p>
<p><small>[1] Shift Support Captain is kind of a dispatcher for 24-hour service.  We have been doing 24x7 service through an on-call phone number for years, but a few months ago we started literally manning the desk 24x7 -- something that we have grown large enough to both need and justify, at our current size of around 30 people.  Our customers can now use email, Skype, AOL messenger, or Google Chat (as well as the phone number) to get immediate attention, 24x7, from a technically savvy person.</small></p>
    <hr noshade style="margin:0;height:1px" />
    <p>Entry posted by Baron Schwartz |
      <a href="http://www.mysqlperformanceblog.com/2009/10/08/percona-welcomes-yves-trudeau-and-fernando-ipar/#comments">3 comments</a></p>
    <p>Add to: <a href="http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/10/08/percona-welcomes-yves-trudeau-and-fernando-ipar/&amp;title=Percona welcomes Yves Trudeau and Fernando Ipar" title="Bookmark this post on del.icio.us"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png" alt="delicious" /></a> | <a href="http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/10/08/percona-welcomes-yves-trudeau-and-fernando-ipar/&amp;title=Percona welcomes Yves Trudeau and Fernando Ipar" title="Digg this post on Digg.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png" alt="digg" /></a> | <a href="http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/10/08/percona-welcomes-yves-trudeau-and-fernando-ipar/&amp;title=Percona welcomes Yves Trudeau and Fernando Ipar" title="Submit this post on reddit.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png" alt="reddit" /></a> | <a href="http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/10/08/percona-welcomes-yves-trudeau-and-fernando-ipar/&amp;T=Percona welcomes Yves Trudeau and Fernando Ipar" title="Vote for this article on Netscape"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif" alt="netscape" /></a> | <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/10/08/percona-welcomes-yves-trudeau-and-fernando-ipar/&amp;title=Percona welcomes Yves Trudeau and Fernando Ipar" title="Add to Google Bookmarks"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png" alt="Google Bookmarks" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.mysqlperformanceblog.com/2009/10/08/percona-welcomes-yves-trudeau-and-fernando-ipar/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Which adaptive should we use?</title>
		<link>http://www.mysqlperformanceblog.com/2009/09/15/which-adaptive-should-we-use/</link>
		<comments>http://www.mysqlperformanceblog.com/2009/09/15/which-adaptive-should-we-use/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 00:12:44 +0000</pubDate>
		<dc:creator>Yasufumi</dc:creator>
				<category><![CDATA[Innodb]]></category>
		<category><![CDATA[benchmarks]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tuning]]></category>
		<category><![CDATA[xtradb]]></category>

		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=1125</guid>
		<description><![CDATA[As you may know, InnoDB has 2 limits for unflushed modified blocks in the buffer pool. The one is from physical size of the buffer pool. And the another one is oldness of the block which is from the capacity of transaction log files.
In the case of heavy updating workload, the modified ages of the [...]]]></description>
			<content:encoded><![CDATA[<p>As you may know, InnoDB has 2 limits for unflushed modified blocks in the buffer pool. The one is from physical size of the buffer pool. And the another one is oldness of the block which is from the capacity of transaction log files.</p>
<p>In the case of heavy updating workload, the modified ages of the many blocks are clustered. And to reduce the maximum of the modified ages InnoDB needs to flush many of the blocks in a short time, if these are not flushed at all. Then the flushing storm affect the performance seriously.</p>
<p>We suggested the "adaptive_checkpoint" option of constant flushing to avoid such a flushing storm. And finally, the newest InnoDB Plugin 1.0.4 has the new similar option "adaptive_flushing" as native.</p>
<p>Let's check the adaptive flushing options at this post.</p>
<p><em><strong>HOW THEY WORK</strong></em></p>
<p><strong>&lt; adaptive_checkpoint=reflex (older method)&gt;</strong></p>
<table border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td>oldest modified age %/max</td>
<td>behavior</td>
</tr>
<tr>
<td>0 ~ 50%</td>
<td>nothing</td>
</tr>
<tr>
<td>50% ~ 75%</td>
<td>constant flushing (weak)</td>
</tr>
<tr>
<td>75% ~ 87.5%</td>
<td>constant flushing (strong)</td>
</tr>
<tr>
<td>87.5% ~</td>
<td>(flushing storm)</td>
</tr>
</tbody>
</table>
<p><strong>&lt; adaptive_checkpoint=estimate (newer method)&gt;</strong></p>
<table border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td>oldest modified age %/max</td>
<td>behavior</td>
</tr>
<tr>
<td>0 ~ 50%</td>
<td>nothing</td>
</tr>
<tr>
<td>50% ~ 87.5%</td>
<td>estimate flushing as bellow *</td>
</tr>
<tr>
<td>87.5% ~</td>
<td>(flushing storm)</td>
</tr>
</tbody>
</table>
<p>* estimate blocks to flush based on...</p>
<ul>
<li> how many modified and unflushed blocks</li>
<li> progress speed of the transaction log</li>
<li> the modified age average of all blocks to flush</li>
</ul>
<p><strong>&lt; adaptive_flushing (default "true" at 1.0.4)&gt;</strong><br />
Its behavior is not based on the oldest modified age %.</p>
<p>* the how many blocks to flush based on...</p>
<ul>
<li> how many modified and unflushed blocks</li>
<li> progress speed of the transaction log</li>
<li> transaction log capacity</li>
</ul>
<p>(and adjust along with another flushing)</p>
<p>And it doesn't exceed the equivalent to "constant flushing (strong)"<br />
of the "adaptive_checkpoint=reflex"</p>
<p><em><strong>RESULTS</strong></em></p>
<p>TPC-C like workload (100WH: 16 session full)</p>
<p>innodb_buffer_pool_size = 16G<br />
innodb_max_dirty_pages_pct = 90</p>
<p>innodb_log_file_size = 512M<br />
innodb_log_files_in_group = 2</p>
<p>innodb_io_capacity = 4000<br />
innodb_read_io_threads = 8<br />
innodb_write_io_threads = 8<br />
innodb_flush_method = O_DIRECT</p>
<p>innodb_thread_concurrency = 0<br />
innodb_ibuf_active_contract = 1</p>
<p><strong>&lt;none&gt;</strong><br />
innodb_adaptive_flushing = false<br />
innodb_adaptive_checkpoint = none</p>
<p><strong>&lt;flushing&gt;</strong><br />
innodb_adaptive_flushing = true</p>
<p><strong>&lt;reflex&gt;</strong><br />
innodb_adaptive_flushing = false<br />
innodb_adaptive_checkpoint = reflex</p>
<p><strong>&lt;estimate&gt;</strong><br />
innodb_adaptive_flushing = false<br />
innodb_adaptive_checkpoint = estimate</p>
<p><strong><em>case1: "innodb_doublewrite = false"</em></strong></p>
<p>[0~1800 sec.]</p>
<p><img class="alignnone size-full wp-image-1132" title="no_doublewrite-0-1800" src="http://www.mysqlperformanceblog.com/wp-content/uploads/2009/09/no_doublewrite-0-18001.png" alt="no_doublewrite-0-1800" width="705" height="388" /></p>
<p>[1200~1800 sec.]</p>
<p><img class="alignnone size-full wp-image-1134" title="no_doublewrite-1200-1800" src="http://www.mysqlperformanceblog.com/wp-content/uploads/2009/09/no_doublewrite-1200-1800.png" alt="no_doublewrite-1200-1800" width="705" height="388" /></p>
<p>averages (1200~1800 sec.)<br />
none:     6868.92<br />
flushing: 6655.92<br />
reflex:     6481<br />
estimate: 6575.88</p>
<p><strong><em>case2: "innodb_doublewrite = true"</em></strong></p>
<p>[0~1800 sec.]</p>
<p><img class="alignnone size-full wp-image-1137" title="doublewrite-0-1800" src="http://www.mysqlperformanceblog.com/wp-content/uploads/2009/09/doublewrite-0-1800.png" alt="doublewrite-0-1800" width="705" height="388" /></p>
<p>[1200~1800 sec.]</p>
<p><img class="alignnone size-full wp-image-1138" title="doublewrite-1200-1800" src="http://www.mysqlperformanceblog.com/wp-content/uploads/2009/09/doublewrite-1200-1800.png" alt="doublewrite-1200-1800" width="705" height="388" /></p>
<p>averages (1200~1800 sec.)<br />
none:     6569.48<br />
flushing: 5090.12<br />
reflex:     6871.9<br />
estimate: 6609.9</p>
<p><strong><em>CONSIDERINGS</em></strong></p>
<p>The new "adaptive_flushing" seems to be tuned for "innodb_doublewrite = false" only.<br />
(cause too much flushing for "innodb_doublewrite = true")</p>
<p>"innodb_adaptive_checkpoint = reflex" and "adaptive_flushing" need tuning innodb_io_capacity properly.<br />
(The result is based on proper value "innodb_io_capacity = 4000")</p>
<p>"innodb_adaptive_checkpoint = estimate" is not depend on innodb_io_capacity, and it seems more "soft" result than the other methods.</p>
<p>So,</p>
<p>The "adaptive_flushing" seems good when we use "innodb_doublewrite = false".</p>
<p>"innodb_adaptive_checkpoint = estimate" may be safe for "innodb_doublewrite = true" for now.</p>
<p>I should adjust "adaptive_flushing" for "innodb_doublewrite = true". <img src='http://www.mysqlperformanceblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<hr /><em><strong>IMPROVEMENTS</strong></em> (16 Sep.)</p>
<p>I have tried to improve the performance. But I couldn't adjust performance of adaptive_flushing with doublewrite... So, instead of that, estimate is adjusted more.</p>
<p><strong><em>case1: "innodb_doublewrite = false"</em></strong></p>
<p>[0~1800 sec.]</p>
<p><img class="alignnone size-full wp-image-1159" title="no_doublewrite-0-1800_2" src="http://www.mysqlperformanceblog.com/wp-content/uploads/2009/09/no_doublewrite-0-1800_21.png" alt="no_doublewrite-0-1800_2" width="705" height="388" /></p>
<p><strong><em>case2: "innodb_doublewrite = true"</em></strong></p>
<p>[0~1800 sec.]</p>
<p><img class="alignnone size-full wp-image-1160" title="doublewrite-0-1800_2" src="http://www.mysqlperformanceblog.com/wp-content/uploads/2009/09/doublewrite-0-1800_2.png" alt="doublewrite-0-1800_2" width="705" height="388" /></p>
<p>The new "innodb_adaptive_checkpoint = estimate" seems to be more stable than before. The next question is, <strong>"Why is estimate + doublewrite better than the other no doublewrite settings?"</strong>... <img src='http://www.mysqlperformanceblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<hr /><strong>ADDITIONAL TEST IN ANOTHER BALANCE</strong></p>
<p>Also tested in another configuration to check the behaviors in another balance of IO bound.</p>
<p>&lt;changes&gt;<br />
innodb_buffer_pool_size = 2G   (1/8)<br />
innodb_log_file_size = 128M    (1/4)</p>
<p><strong><em>case1: "innodb_doublewrite = false"</em></strong></p>
<p>[0~1200 sec.]</p>
<p><img class="alignnone size-full wp-image-1202" title="no_doublewrite_2-0-1200" src="http://www.mysqlperformanceblog.com/wp-content/uploads/2009/09/no_doublewrite_2-0-1200.png" alt="no_doublewrite_2-0-1200" width="705" height="387" /></p>
<p><strong><em>case2: "innodb_doublewrite = true"</em></strong></p>
<p>[0~1200 sec.]</p>
<p><img class="alignnone size-full wp-image-1203" title="doublewrite_2-0-1200" src="http://www.mysqlperformanceblog.com/wp-content/uploads/2009/09/doublewrite_2-0-1200.png" alt="doublewrite_2-0-1200" width="705" height="387" /></p>
<p>"innodb_adaptive_checkpoint = estimate" seems stable but seems to flush much in its initial phase. The adaptive_flushing seems to be more soft in this cases.</p>
<p>Hmmm....</p>
<p><strong>We should choose suitable adaptive_xxx for each workload for now</strong>... <img src='http://www.mysqlperformanceblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
    <hr noshade style="margin:0;height:1px" />
    <p>Entry posted by Yasufumi |
      <a href="http://www.mysqlperformanceblog.com/2009/09/15/which-adaptive-should-we-use/#comments">12 comments</a></p>
    <p>Add to: <a href="http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/09/15/which-adaptive-should-we-use/&amp;title=Which adaptive should we use?" title="Bookmark this post on del.icio.us"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png" alt="delicious" /></a> | <a href="http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/09/15/which-adaptive-should-we-use/&amp;title=Which adaptive should we use?" title="Digg this post on Digg.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png" alt="digg" /></a> | <a href="http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/09/15/which-adaptive-should-we-use/&amp;title=Which adaptive should we use?" title="Submit this post on reddit.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png" alt="reddit" /></a> | <a href="http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/09/15/which-adaptive-should-we-use/&amp;T=Which adaptive should we use?" title="Vote for this article on Netscape"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif" alt="netscape" /></a> | <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/09/15/which-adaptive-should-we-use/&amp;title=Which adaptive should we use?" title="Add to Google Bookmarks"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png" alt="Google Bookmarks" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.mysqlperformanceblog.com/2009/09/15/which-adaptive-should-we-use/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>XtraDB: The Top 10 enhancements</title>
		<link>http://www.mysqlperformanceblog.com/2009/08/13/xtradb-the-top-10-enhancements/</link>
		<comments>http://www.mysqlperformanceblog.com/2009/08/13/xtradb-the-top-10-enhancements/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 14:04:39 +0000</pubDate>
		<dc:creator>Morgan Tocker</dc:creator>
				<category><![CDATA[Innodb]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[xtradb]]></category>
		<category><![CDATA[improvements]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=934</guid>
		<description><![CDATA[Note: This post is part 2 of 4 on building our training workshop.

Last week I talked about why you don't want to shard. This week I'm following up with the top 10 enhancements that XtraDB has over the built-in InnoDB included in MySQL 5.0 and 5.1.  Building this list was not really a scientific process [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Note:</strong> This post is part 2 of 4 on building our <a href="http://www.percona.com/training/performance-optimization-for-mysql-with-innodb-and-xtradb.html">training workshop.</a><br />
</em></p>
<p>Last week I talked about <a href="http://www.mysqlperformanceblog.com/2009/08/06/why-you-dont-want-to-shard/">why you don't want to shard</a>. This week I'm following up with the top 10 enhancements that XtraDB has over the built-in InnoDB included in MySQL 5.0 and 5.1.  Building this list was not really a scientific process - It's always difficult to say which feature is better than another, because a lot of it depends on the individual workload.  My ranking method was to pick the features that have the highest impact and are most applicable to all workloads first:</p>
<ol>
<li><strong>CPU scalability fixes</strong> - XtraDB improves performance on systems with multi-cpus (see docs <a href="http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_split_buf_pool_mutex">1</a>, <a href="http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_rw_lock">2</a>).</li>
<li><strong>Import/Export Tables</strong> - XtraDB allows you to import an arbitrary  table from one server to another, by backing up the .ibd file with Xtrabackup (see <a href="http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_expand_import">docs</a>).</li>
<li><strong>IO scalability fixes</strong> - A lot of the internal algorithms of InnoDB are based on the non-configurable assumption that the server has only a single disk installed (100 iops).  One problem in particular that this causes, is that InnoDB the algorithm which chooses if InnoDB is too busy to flush dirty pages can consider it's self busy <em>very</em> easily.  Keeping a large percentage of pages dirty increases recovery time, and will lead to more work when checkpoints are eventually forced at the end of a log file.  XtraDB improves this with innodb_io_capacity, as well as configuration items for innodb_read_threads, innodb_write_threads (see <a href="http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_io">docs</a>).</li>
<li><strong>Better Diagnostics</strong> - The SHOW ENGINE INNODB STATUS command in XtraDB shows a lot more information than the standard InnoDB status (see <a href="http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_show_status">docs</a>).  The built-in InnoDB status also has some problems with the placement of items (a long transaction list will prevent the rest of the information shown).  In addition to this, XtraDB diagnostics include the ability to see the contents of the buffer pool (see <a href="http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_buffer_pool_pages">docs</a>), and InnoDB row statistics are inserted into the slow query log (see <a href="http://www.percona.com/docs/wiki/patches:microslow_innodb">docs</a>).</li>
<li><strong>Fast Crash Recovery</strong> - In the built-in InnoDB, the crash recovery process is sometimes best measured in hours and days - this restricts users to using very small transaction log files (innodb_log_file_size), which is worse for performance.  In a <a href="http://www.mysqlperformanceblog.com/2009/07/07/improving-innodb-recovery-time/">simple test</a>, XtraDB recovered ten times faster (see <a href="http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_recovery_patches">docs</a>).</li>
<li><strong>InnoDB Plugin Features</strong> - XtraDB is derived from the InnoDB plugin, which has fast index creation (as opposed to recreating the whole table!) and page compression.</li>
<li><strong>Adaptive Checkpointing</strong> - The built-in InnoDB can have erratic dips in performance as it approaches the end of a log file and needs to checkpoint - which can cause a denial of service to your application (this can be seen in any benchmark - such as this one).  In XtraDB, adaptive checkpointing can smooth out the load, and checkpoint data more aggressively as you approach the end of a log file (see <a href="http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_io#innodb_adaptive_checkpoint">docs</a>).</li>
<li><strong>Insert Buffer control</strong> - The insert buffer is a great feature of InnoDB that is not often discussed.  It allows you to delay the writing of non-unique secondary index pages, which can often lead to a lot of merged requests and reduced IO.  The  problem with the insert buffer in the built-in InnoDB, is that there are no options to tweak it.  It can grow to 1/2 the size of your buffer pool, and when it does, it doesn't try to aggressively free entries (a full buffer provides no use) or reduce its size (see <a href="http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_io#innodb_ibuf_max_size">docs</a>).</li>
<li><strong>Data dictionary control</strong> - Once an InnoDB table is opened it is never freed from the in-memory data dictionary (which is unlimited in size).  XtraDB introduces a patch to be able to control this, which is useful in cases where users have a large number of tables. (see <a href="http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_dict_size_limit">docs</a>).</li>
<li><strong>Additional undo slots</strong> - In the built-in InnoDB, the number of open transactions is limited to 1023 (see <a href="http://bugs.mysql.com/bug.php?id=26590">bug report</a>).  XtraDB allows this to be expanded to 4072 (<strong>Warning:</strong> Incompatible change!).  (see <a href="http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_expand_undo_slots">docs</a>).</li>
</ol>
<p>All of these 10 items will be covered in our <a href="http://www.percona.com/training/performance-optimization-for-mysql-with-innodb-and-xtradb.html">Training workshops for InnoDB and XtraDB</a>.  In <a href="http://percona-ca-sc.eventbrite.com/">Santa Clara</a> / <a href="http://percona-ca-sf.eventbrite.com/">San Francisco</a> between 14-16 September?  Come along!</p>
<p><em>My next post in this series will be on XtraDB: The Top 10 Configuration Parameters.</em></p>
    <hr noshade style="margin:0;height:1px" />
    <p>Entry posted by Morgan Tocker |
      <a href="http://www.mysqlperformanceblog.com/2009/08/13/xtradb-the-top-10-enhancements/#comments">5 comments</a></p>
    <p>Add to: <a href="http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/08/13/xtradb-the-top-10-enhancements/&amp;title=XtraDB: The Top 10 enhancements" title="Bookmark this post on del.icio.us"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png" alt="delicious" /></a> | <a href="http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/08/13/xtradb-the-top-10-enhancements/&amp;title=XtraDB: The Top 10 enhancements" title="Digg this post on Digg.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png" alt="digg" /></a> | <a href="http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/08/13/xtradb-the-top-10-enhancements/&amp;title=XtraDB: The Top 10 enhancements" title="Submit this post on reddit.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png" alt="reddit" /></a> | <a href="http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/08/13/xtradb-the-top-10-enhancements/&amp;T=XtraDB: The Top 10 enhancements" title="Vote for this article on Netscape"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif" alt="netscape" /></a> | <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/08/13/xtradb-the-top-10-enhancements/&amp;title=XtraDB: The Top 10 enhancements" title="Add to Google Bookmarks"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png" alt="Google Bookmarks" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.mysqlperformanceblog.com/2009/08/13/xtradb-the-top-10-enhancements/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>XtraDB has been commited to MariaDB</title>
		<link>http://www.mysqlperformanceblog.com/2009/08/03/xtradb-has-been-commited-to-mariadb/</link>
		<comments>http://www.mysqlperformanceblog.com/2009/08/03/xtradb-has-been-commited-to-mariadb/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 01:19:35 +0000</pubDate>
		<dc:creator>Vadim</dc:creator>
				<category><![CDATA[Innodb]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[xtradb]]></category>

		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=898</guid>
		<description><![CDATA[If you do not follow MariaDB development, I want to head up  XtraDB has been commited to MariaDB server and will be included in binary releases of MariaDB (scheduled on end of August - September) as replacement of InnoDB storage engine. MariaDB will also include PBXT storage engine, Sphinx storage engine and few our [...]]]></description>
			<content:encoded><![CDATA[<p>If you do not follow MariaDB development, I want to head up  XtraDB has been commited to MariaDB server and will be included in binary releases of MariaDB (scheduled on end of August - September) as replacement of InnoDB storage engine. MariaDB will also include PBXT storage engine, Sphinx storage engine and few our non-InnoDB related patches (extended stats into slow-log)</p>
    <hr noshade style="margin:0;height:1px" />
    <p>Entry posted by Vadim |
      <a href="http://www.mysqlperformanceblog.com/2009/08/03/xtradb-has-been-commited-to-mariadb/#comments">One comment</a></p>
    <p>Add to: <a href="http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/08/03/xtradb-has-been-commited-to-mariadb/&amp;title=XtraDB has been commited to MariaDB" title="Bookmark this post on del.icio.us"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png" alt="delicious" /></a> | <a href="http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/08/03/xtradb-has-been-commited-to-mariadb/&amp;title=XtraDB has been commited to MariaDB" title="Digg this post on Digg.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png" alt="digg" /></a> | <a href="http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/08/03/xtradb-has-been-commited-to-mariadb/&amp;title=XtraDB has been commited to MariaDB" title="Submit this post on reddit.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png" alt="reddit" /></a> | <a href="http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/08/03/xtradb-has-been-commited-to-mariadb/&amp;T=XtraDB has been commited to MariaDB" title="Vote for this article on Netscape"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif" alt="netscape" /></a> | <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/08/03/xtradb-has-been-commited-to-mariadb/&amp;title=XtraDB has been commited to MariaDB" title="Add to Google Bookmarks"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png" alt="Google Bookmarks" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.mysqlperformanceblog.com/2009/08/03/xtradb-has-been-commited-to-mariadb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Copying InnoDB tables between servers</title>
		<link>http://www.mysqlperformanceblog.com/2009/07/31/copying-innodb-tables-between-servers/</link>
		<comments>http://www.mysqlperformanceblog.com/2009/07/31/copying-innodb-tables-between-servers/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 17:41:32 +0000</pubDate>
		<dc:creator>Vadim</dc:creator>
				<category><![CDATA[tips]]></category>
		<category><![CDATA[xtradb]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[Innodb]]></category>
		<category><![CDATA[xtrabackup]]></category>

		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=885</guid>
		<description><![CDATA[The feature I announced some time ago http://www.mysqlperformanceblog.com/2009/06/08/impossible-possible-moving-innodb-tables-between-servers/ is now available in our latest releases of XtraBackup 0.8.1 and XtraDB-6.
Now I am going to show how to use it (the video will be also available on percona.tv).
Let's take  tpcc schema and running standard MySQL &#174; 5.0.83, and assume we want to copy order_line table [...]]]></description>
			<content:encoded><![CDATA[<p>The feature I announced some time ago <a href="http://www.mysqlperformanceblog.com/2009/06/08/impossible-possible-moving-innodb-tables-between-servers/">http://www.mysqlperformanceblog.com/2009/06/08/impossible-possible-moving-innodb-tables-between-servers/</a> is now available in our latest releases of <a href="http://www.mysqlperformanceblog.com/2009/07/01/xtrabackup-08/">XtraBackup 0.8.1</a> and <a href="http://www.mysqlperformanceblog.com/2009/07/20/xtradb-storage-engine-release-1-0-3-6/">XtraDB-6</a>.</p>
<p>Now I am going to show how to use it (the video will be also available on <a href="http://percona.tv">percona.tv</a>).<br />
Let's take  tpcc schema and running standard MySQL &reg; 5.0.83, and assume we want to copy order_line table to different server. Note I am going to do it online, no needs to lock or shutdown server.</p>
<p>To export table you need XtraBackup, and you can just specify table or table by mask:</p>
<div class="igBar"><span id="lcode-14"><a href="#" onclick="javascript:showPlainTxt('code-14'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-14">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup&nbsp; --defaults-file=/etc/my.<span style="">reg</span>.<span style="">cnf</span> --backup --tables=tpcc.<span style="">order_line</span>* --target-dir=/data/vadim/mysql/export/</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup: tables regcomp<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>: Success</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup&nbsp; Ver <span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">8</span>.1rc Rev <span style="color:#800000;color:#800000;">78</span> for <span style="color:#800000;color:#800000;">5</span>.<span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">83</span> unknown-linux-gnu <span style="color:#006600; font-weight:bold;">&#40;</span>x86_64<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup: uses posix_fadvise<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">xtrabackup</span>: cd to /bench/mysqldata</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup: Target instance is assumed as followings.</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">xtrabackup</span>:&nbsp; &nbsp;innodb_data_home_dir = ./</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup:&nbsp; &nbsp;innodb_data_file_path = ibdata1:10M:autoextend</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup:&nbsp; &nbsp;innodb_log_group_home_dir = ./</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup:&nbsp; &nbsp;innodb_log_files_in_group = <span style="color:#800000;color:#800000;">3</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup:&nbsp; &nbsp;innodb_log_file_size = <span style="color:#800000;color:#800000;">536870912</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup: use O_DIRECT</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&gt;&gt; log scanned up to <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">3</span> <span style="color:#800000;color:#800000;">767617628</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Copying ./ibdata1</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;to /data/vadim/mysql/export<span style="color:#FF9933; font-style:italic;">//ibdata1</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&gt;&gt; log scanned up to <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">3</span> <span style="color:#800000;color:#800000;">769009554</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; ...<span style="">done</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Copying ./mysql/ibbackup_binlog_marker.<span style="">ibd</span> is skipped.</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">Copying</span> ./tpcc/stock.<span style="">ibd</span> is skipped.</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">Copying</span> ./tpcc/warehouse.<span style="">ibd</span> is skipped.</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">Copying</span> ./tpcc/new_orders.<span style="">ibd</span> is skipped.</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">Copying</span> ./tpcc/order_line.<span style="">ibd</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;to /data/vadim/mysql/export<span style="color:#FF9933; font-style:italic;">//tpcc/order_line.ibd</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&gt;&gt; log scanned up to <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">3</span> <span style="color:#800000;color:#800000;">770393658</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">...</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&gt;&gt; log scanned up to <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">3</span> <span style="color:#800000;color:#800000;">844882683</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; ...<span style="">done</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Copying ./tpcc/district.<span style="">ibd</span> is skipped.</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">Copying</span> ./tpcc/orders.<span style="">ibd</span> is skipped.</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">Copying</span> ./tpcc/item.<span style="">ibd</span> is skipped.</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">Copying</span> ./tpcc/customer.<span style="">ibd</span> is skipped.</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">Copying</span> ./tpcc/history.<span style="">ibd</span> is skipped.</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">xtrabackup</span>: The latest check point <span style="color:#006600; font-weight:bold;">&#40;</span>for incremental<span style="color:#006600; font-weight:bold;">&#41;</span>: <span style="color:#CC0000;">'3:763362037'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&gt;&gt; log scanned up to <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">3</span> <span style="color:#800000;color:#800000;">845737724</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup: Stopping log copying thread.</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">xtrabackup</span>: Transaction log of lsn <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">3</span> <span style="color:#800000;color:#800000;">763355707</span><span style="color:#006600; font-weight:bold;">&#41;</span> to <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">3</span> <span style="color:#800000;color:#800000;">845737724</span><span style="color:#006600; font-weight:bold;">&#41;</span> was copied. </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Now in <code>/data/vadim/mysql/export</code> we have backup but only with <code>ibdata1</code> and <code>order_line.ibd</code> files</p>
<p>Second step is to prepare backup, but with special option "export"</p>
<div class="igBar"><span id="lcode-15"><a href="#" onclick="javascript:showPlainTxt('code-15'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-15">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup&nbsp; --defaults-file=/etc/my.<span style="">reg</span>.<span style="">cnf</span> --prepare --export --use-memory=8G --target-dir=/data/vadim/mysql/export/</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup&nbsp; Ver <span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">8</span>.1rc Rev <span style="color:#800000;color:#800000;">78</span> for <span style="color:#800000;color:#800000;">5</span>.<span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">83</span> unknown-linux-gnu <span style="color:#006600; font-weight:bold;">&#40;</span>x86_64<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup: cd to /data/vadim/mysql/export/</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup: This target seems to be not prepared yet.</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">xtrabackup</span>: xtrabackup_logfile detected: size=<span style="color:#800000;color:#800000;">92684288</span>, start_lsn=<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">3</span> <span style="color:#800000;color:#800000;">763355707</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup: Temporary instance for recovery is set as followings.</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">xtrabackup</span>:&nbsp; &nbsp;innodb_data_home_dir = ./</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup:&nbsp; &nbsp;innodb_data_file_path = ibdata1:10M:autoextend</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup:&nbsp; &nbsp;innodb_log_group_home_dir = ./</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup:&nbsp; &nbsp;innodb_log_files_in_group = <span style="color:#800000;color:#800000;">1</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup:&nbsp; &nbsp;innodb_log_file_size = <span style="color:#800000;color:#800000;">92684288</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">xtrabackup: Starting InnoDB instance for recovery.</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">xtrabackup</span>: Using <span style="color:#800000;color:#800000;">8589934592</span> bytes for buffer pool <span style="color:#006600; font-weight:bold;">&#40;</span>set by --use-memory parameter<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">InnoDB: Log scan progressed past the checkpoint lsn <span style="color:#800000;color:#800000;">3</span> <span style="color:#800000;color:#800000;">763355707</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#800000;color:#800000;">090730</span> <span style="color:#800000;color:#800000;">23</span>:<span style="color:#800000;color:#800000;">22</span>:<span style="color:#800000;color:#800000;">43</span>&nbsp; InnoDB: Database was not shut down normally!</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">InnoDB: Starting crash recovery.</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">InnoDB</span>: Reading tablespace information from the .<span style="">ibd</span> files...</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">InnoDB</span>: Doing recovery: scanned up to log sequence number <span style="color:#800000;color:#800000;">3</span> <span style="color:#800000;color:#800000;">768598528</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">6</span> %<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">....</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">InnoDB</span>: Doing recovery: scanned up to log sequence number <span style="color:#800000;color:#800000;">3</span> <span style="color:#800000;color:#800000;">845737724</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">99</span> %<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">InnoDB: <span style="color:#800000;color:#800000;">12</span> transaction<span style="color:#006600; font-weight:bold;">&#40;</span>s<span style="color:#006600; font-weight:bold;">&#41;</span> which must be rolled back or cleaned up</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">InnoDB: in total <span style="color:#800000;color:#800000;">107</span> row operations to undo</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">InnoDB: Trx id counter is <span style="color:#800000;color:#800000;">0</span> <span style="color:#800000;color:#800000;">1560320</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">....</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">id</span> <span style="color:#800000;color:#800000;">0</span> <span style="color:#800000;color:#800000;">1559932</span>, <span style="color:#800000;color:#800000;">13</span> rows to undo</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">InnoDB: Rolling back of trx id <span style="color:#800000;color:#800000;">0</span> <span style="color:#800000;color:#800000;">1559932</span> completed</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#800000;color:#800000;">090730</span> <span style="color:#800000;color:#800000;">23</span>:<span style="color:#800000;color:#800000;">23</span>:<span style="color:#800000;color:#800000;">35</span>&nbsp; InnoDB: Rolling back trx with id <span style="color:#800000;color:#800000;">0</span> <span style="color:#800000;color:#800000;">1559890</span>, <span style="color:#800000;color:#800000;">30</span> rows to undo</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">InnoDB: Rolling back of trx id <span style="color:#800000;color:#800000;">0</span> <span style="color:#800000;color:#800000;">1559890</span> completed</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#800000;color:#800000;">090730</span> <span style="color:#800000;color:#800000;">23</span>:<span style="color:#800000;color:#800000;">23</span>:<span style="color:#800000;color:#800000;">35</span>&nbsp; InnoDB: Rollback of non-prepared transactions completed</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#800000;color:#800000;">090730</span> <span style="color:#800000;color:#800000;">23</span>:<span style="color:#800000;color:#800000;">25</span>:<span style="color:#800000;color:#800000;">32</span>&nbsp; InnoDB: Shutdown completed; log sequence number <span style="color:#800000;color:#800000;">3</span> <span style="color:#800000;color:#800000;">852825486</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>When it's done we have two files <code>order_line.ibd</code> and <code>order_line.exp</code> in directory <code>/data/vadim/mysql/export/tpcc</code>. ibd is regular InnoDB &reg; file, and exp is file with special export information. Both files should be copied to remote server.</p>
<p>Now on remote server you have to run MySQL server &reg; with XtraDB6 storage engine, you can take one of our binary builds with <a href="http://percona.com/mysql/xtradb">5.1.36</a>.</p>
<p>On new server we run<br />
<code>set global innodb_expand_import=1;</code> to put XtraDB into extended import mode, and now we need to create empty table with the same table definition as on old servers:</p>
<div class="igBar"><span id="lcode-16"><a href="#" onclick="javascript:showPlainTxt('code-16'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-16">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">CREATE DATABASE <span style="color:#CC0000;">"testimport"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">USE <span style="color:#CC0000;">"testimport"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">CREATE TABLE `order_line` <span style="color:#006600; font-weight:bold;">&#40;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; `ol_o_id` int<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">11</span><span style="color:#006600; font-weight:bold;">&#41;</span> NOT NULL,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; `ol_d_id` tinyint<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">4</span><span style="color:#006600; font-weight:bold;">&#41;</span> NOT NULL,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; `ol_w_id` smallint<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">6</span><span style="color:#006600; font-weight:bold;">&#41;</span> NOT NULL,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; `ol_number` tinyint<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">4</span><span style="color:#006600; font-weight:bold;">&#41;</span> NOT NULL,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; `ol_i_id` int<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">11</span><span style="color:#006600; font-weight:bold;">&#41;</span> default NULL,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; `ol_supply_w_id` smallint<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">6</span><span style="color:#006600; font-weight:bold;">&#41;</span> default NULL,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; `ol_delivery_d` datetime default NULL,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; `ol_quantity` tinyint<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">4</span><span style="color:#006600; font-weight:bold;">&#41;</span> default NULL,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; `ol_amount` decimal<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">6</span>,<span style="color:#800000;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span> default NULL,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; `ol_dist_info` char<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">24</span><span style="color:#006600; font-weight:bold;">&#41;</span> default NULL,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; PRIMARY KEY&nbsp; <span style="color:#006600; font-weight:bold;">&#40;</span>`ol_w_id`,`ol_d_id`,`ol_o_id`,`ol_number`<span style="color:#006600; font-weight:bold;">&#41;</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; KEY `fkey_order_line_2` <span style="color:#006600; font-weight:bold;">&#40;</span>`ol_supply_w_id`,`ol_i_id`<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#41;</span> ENGINE=InnoDB DEFAULT CHARSET=latin1 </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Next step is to remove created .ibd file, it's done by command:</p>
<div class="igBar"><span id="lcode-17"><a href="#" onclick="javascript:showPlainTxt('code-17'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-17">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">alter table order_line discard tablespace; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>And now you copy both <code>order_line.ibd</code> and <code>order_line.exp</code> to <code>MysqlDataDir/testimport</code> dir. When it's done, final import command:</p>
<div class="igBar"><span id="lcode-18"><a href="#" onclick="javascript:showPlainTxt('code-18'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-18">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">alter table order_line import&nbsp; tablespace; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>now some magic happens and you can see progress of import in error.log</p>
<div class="igBar"><span id="lcode-19"><a href="#" onclick="javascript:showPlainTxt('code-19'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-19">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">InnoDB: import: extended import of testexport/order_line is started.</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">InnoDB</span>: import: <span style="color:#800000;color:#800000;">2</span> indexes are detected.</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">InnoDB</span>: Progress in %: <span style="color:#800000;color:#800000;">1</span> <span style="color:#800000;color:#800000;">2</span> <span style="color:#800000;color:#800000;">3</span> <span style="color:#800000;color:#800000;">4</span> <span style="color:#800000;color:#800000;">5</span> <span style="color:#800000;color:#800000;">6</span> <span style="color:#800000;color:#800000;">7</span> <span style="color:#800000;color:#800000;">8</span> <span style="color:#800000;color:#800000;">9</span> <span style="color:#800000;color:#800000;">10</span> <span style="color:#800000;color:#800000;">11</span> <span style="color:#800000;color:#800000;">12</span> <span style="color:#800000;color:#800000;">13</span> <span style="color:#800000;color:#800000;">14</span> <span style="color:#800000;color:#800000;">15</span> <span style="color:#800000;color:#800000;">16</span> <span style="color:#800000;color:#800000;">17</span> <span style="color:#800000;color:#800000;">18</span> <span style="color:#800000;color:#800000;">19</span> <span style="color:#800000;color:#800000;">20</span> <span style="color:#800000;color:#800000;">21</span> <span style="color:#800000;color:#800000;">22</span> <span style="color:#800000;color:#800000;">23</span> <span style="color:#800000;color:#800000;">24</span> <span style="color:#800000;color:#800000;">25</span> <span style="color:#800000;color:#800000;">26</span> <span style="color:#800000;color:#800000;">27</span> <span style="color:#800000;color:#800000;">28</span> <span style="color:#800000;color:#800000;">29</span> <span style="color:#800000;color:#800000;">30</span> <span style="color:#800000;color:#800000;">31</span> <span style="color:#800000;color:#800000;">32</span> <span style="color:#800000;color:#800000;">33</span> <span style="color:#800000;color:#800000;">34</span> <span style="color:#800000;color:#800000;">35</span> <span style="color:#800000;color:#800000;">36</span> <span style="color:#800000;color:#800000;">37</span> <span style="color:#800000;color:#800000;">38</span> <span style="color:#800000;color:#800000;">39</span> <span style="color:#800000;color:#800000;">40</span> <span style="color:#800000;color:#800000;">41</span> <span style="color:#800000;color:#800000;">42</span> <span style="color:#800000;color:#800000;">43</span> <span style="color:#800000;color:#800000;">44</span> <span style="color:#800000;color:#800000;">45</span> <span style="color:#800000;color:#800000;">46</span> <span style="color:#800000;color:#800000;">47</span> <span style="color:#800000;color:#800000;">48</span> <span style="color:#800000;color:#800000;">49</span> <span style="color:#800000;color:#800000;">50</span> <span style="color:#800000;color:#800000;">51</span> <span style="color:#800000;color:#800000;">52</span> <span style="color:#800000;color:#800000;">53</span> <span style="color:#800000;color:#800000;">54</span> <span style="color:#800000;color:#800000;">55</span> <span style="color:#800000;color:#800000;">56</span> <span style="color:#800000;color:#800000;">57</span> <span style="color:#800000;color:#800000;">58</span> <span style="color:#800000;color:#800000;">59</span> <span style="color:#800000;color:#800000;">60</span> <span style="color:#800000;color:#800000;">61</span> <span style="color:#800000;color:#800000;">62</span> <span style="color:#800000;color:#800000;">63</span> <span style="color:#800000;color:#800000;">64</span> <span style="color:#800000;color:#800000;">65</span> <span style="color:#800000;color:#800000;">66</span> <span style="color:#800000;color:#800000;">67</span> <span style="color:#800000;color:#800000;">68</span> <span style="color:#800000;color:#800000;">69</span> <span style="color:#800000;color:#800000;">70</span> <span style="color:#800000;color:#800000;">71</span> <span style="color:#800000;color:#800000;">72</span> <span style="color:#800000;color:#800000;">73</span> <span style="color:#800000;color:#800000;">74</span> <span style="color:#800000;color:#800000;">75</span> <span style="color:#800000;color:#800000;">76</span> <span style="color:#800000;color:#800000;">77</span> <span style="color:#800000;color:#800000;">78</span> <span style="color:#800000;color:#800000;">79</span> <span style="color:#800000;color:#800000;">80</span> <span style="color:#800000;color:#800000;">81</span> <span style="color:#800000;color:#800000;">82</span> <span style="color:#800000;color:#800000;">83</span> <span style="color:#800000;color:#800000;">84</span> <span style="color:#800000;color:#800000;">85</span> <span style="color:#800000;color:#800000;">86</span> <span style="color:#800000;color:#800000;">87</span> <span style="color:#800000;color:#800000;">88</span> <span style="color:#800000;color:#800000;">89</span> <span style="color:#800000;color:#800000;">90</span> <span style="color:#800000;color:#800000;">91</span> <span style="color:#800000;color:#800000;">92</span> <span style="color:#800000;color:#800000;">93</span> <span style="color:#800000;color:#800000;">94</span> <span style="color:#800000;color:#800000;">95</span> <span style="color:#800000;color:#800000;">96</span> <span style="color:#800000;color:#800000;">97</span> <span style="color:#800000;color:#800000;">98</span> <span style="color:#800000;color:#800000;">99</span> <span style="color:#800000;color:#800000;">100</span> done. </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>When finished quick check </p>
<div class="igBar"><span id="lcode-20"><a href="#" onclick="javascript:showPlainTxt('code-20'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-20">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mysql&gt; select count<span style="color:#006600; font-weight:bold;">&#40;</span>*<span style="color:#006600; font-weight:bold;">&#41;</span> from order_line;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">+----------+</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">| count<span style="color:#006600; font-weight:bold;">&#40;</span>*<span style="color:#006600; font-weight:bold;">&#41;</span> |</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">+----------+</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">| <span style="color:#800000;color:#800000;">32093604</span> |</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">+----------+</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#800000;color:#800000;">1</span> row in set <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">3</span> min <span style="color:#800000;color:#800000;">29</span>.<span style="color:#800000;color:#800000;">32</span> sec<span style="color:#006600; font-weight:bold;">&#41;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>New table has been imported!</p>
    <hr noshade style="margin:0;height:1px" />
    <p>Entry posted by Vadim |
      <a href="http://www.mysqlperformanceblog.com/2009/07/31/copying-innodb-tables-between-servers/#comments">3 comments</a></p>
    <p>Add to: <a href="http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/07/31/copying-innodb-tables-between-servers/&amp;title=Copying InnoDB tables between servers" title="Bookmark this post on del.icio.us"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png" alt="delicious" /></a> | <a href="http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/07/31/copying-innodb-tables-between-servers/&amp;title=Copying InnoDB tables between servers" title="Digg this post on Digg.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png" alt="digg" /></a> | <a href="http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/07/31/copying-innodb-tables-between-servers/&amp;title=Copying InnoDB tables between servers" title="Submit this post on reddit.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png" alt="reddit" /></a> | <a href="http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/07/31/copying-innodb-tables-between-servers/&amp;T=Copying InnoDB tables between servers" title="Vote for this article on Netscape"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif" alt="netscape" /></a> | <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/07/31/copying-innodb-tables-between-servers/&amp;title=Copying InnoDB tables between servers" title="Add to Google Bookmarks"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png" alt="Google Bookmarks" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.mysqlperformanceblog.com/2009/07/31/copying-innodb-tables-between-servers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>XtraDB storage engine release 1.0.3-6</title>
		<link>http://www.mysqlperformanceblog.com/2009/07/20/xtradb-storage-engine-release-1-0-3-6/</link>
		<comments>http://www.mysqlperformanceblog.com/2009/07/20/xtradb-storage-engine-release-1-0-3-6/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 20:44:51 +0000</pubDate>
		<dc:creator>Aleksandr Kuzminsky</dc:creator>
				<category><![CDATA[release]]></category>
		<category><![CDATA[storage engine]]></category>
		<category><![CDATA[xtradb]]></category>
		<category><![CDATA[MySQL Storage Engine]]></category>

		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=719</guid>
		<description><![CDATA[Dear community,
Today we are pleased to announce release 6 of XtraDB - the result of 2 months hard work.
The release includes following new features:

MySQL 5.1.36 as a base release
New patch  innodb_recovery_patches.patch
Experimental adaptive checkpoint method estimate
innodb_stats - the implementation of the fix forMySQL Bug#30423
expand-import Support of import InnoDB / XtraDB tables from another server
split-bufpool-mutex-3 New [...]]]></description>
			<content:encoded><![CDATA[<p>Dear community,</p>
<p>Today we are pleased to announce release 6 of XtraDB - the result of 2 months hard work.</p>
<p>The release includes following new features:</p>
<ul>
<li>MySQL 5.1.36 as a base release</li>
<li>New patch  <code>innodb_recovery_patches.patch</code></li>
<li>Experimental adaptive checkpoint method <strong>estimate</strong></li>
<li>innodb_stats - the implementation of the fix for<a href="http://bugs.mysql.com/bug.php?id=30423">MySQL Bug#30423</a></li>
<li><a class="link" title="Show revision 66" href="http://bazaar.launchpad.net/%7Epercona-dev/percona-xtradb/extensions-1.0/revision/66">expand-import</a> Support of import InnoDB / XtraDB tables from another server</li>
<li><a class="link" title="Show revision 65" href="http://bazaar.launchpad.net/%7Epercona-dev/percona-xtradb/extensions-1.0/revision/65">split-bufpool-mutex-3</a> New patch to split buffer pool mutex</li>
<li><a class="link" title="Show revision 64" href="http://bazaar.launchpad.net/%7Epercona-dev/percona-xtradb/extensions-1.0/revision/64">g-style-io-thread</a> Google's fixes to InnoDB IO threads</li>
<li><a class="link" title="Show revision 63" href="http://bazaar.launchpad.net/%7Epercona-dev/percona-xtradb/extensions-1.0/revision/63">dict-size-limit</a> Limit of internal data dictionary</li>
</ul>
<p>Fixed bugs:</p>
<ul>
<li><a href="http://bugs.mysql.com/39793">MySQL Bugs: #39793: Foreign keys not constructed when column has a '#' in a comment or default value</a></li>
<li><a href="https://bugs.launchpad.net/percona-xtradb/+bug/395784">Bug #395784 in Percona-XtraDB: “main.innodb_xtradb_bug317074 internal check fails on 5.1.36”</a></li>
<li><a href="https://bugs.launchpad.net/percona-xtradb/+bug/395778">Bug #395778 in Percona-XtraDB: “main.innodb-analyze internal check failed on 5.1.36”</a></li>
<li><a href="https://bugs.launchpad.net/percona-xtradb/+bug/391189">Bug #391189 in Percona-XtraDB: “main.innodb_bug36172 mysq test fails with innodb_stat.patch applied”</a></li>
<li><a href="https://bugs.launchpad.net/percona-xtradb/+bug/388884">Bug #388884 in Percona-XtraDB: “patching fails on 5.1.35”</a></li>
</ul>
<p>The builds for RedHat4,5 and Debian are located on <a href="http://www.percona.com/mysql/xtradb/5.1.36-6/">http://www.percona.com/mysql/xtradb/5.1.36-6/</a><br />
The latest source code of XtraDB, including development branch you can find on <a href="https://launchpad.net/percona-xtradb">LaunchPAD</a>.</p>
<p>Please report any bugs found on <a href="https://bugs.launchpad.net/percona-xtradb/+bugs-index">Bugs in Percona XtraDB Storage Engine for MySQL</a>.<br />
For general questions use our <a href="http://groups.google.com/group/percona-discussion">Pecona-discussions</a> group, and for development question <a href="http://groups.google.com/group/percona-dev">Percona-dev</a> group.</p>
<p>For support, commercial and sponsorship inquiries contact <a href="http://www.percona.com/contacts.html">Percona</a></p>
    <hr noshade style="margin:0;height:1px" />
    <p>Entry posted by Aleksandr Kuzminsky |
      <a href="http://www.mysqlperformanceblog.com/2009/07/20/xtradb-storage-engine-release-1-0-3-6/#comments">6 comments</a></p>
    <p>Add to: <a href="http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/07/20/xtradb-storage-engine-release-1-0-3-6/&amp;title=XtraDB storage engine release 1.0.3-6" title="Bookmark this post on del.icio.us"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png" alt="delicious" /></a> | <a href="http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/07/20/xtradb-storage-engine-release-1-0-3-6/&amp;title=XtraDB storage engine release 1.0.3-6" title="Digg this post on Digg.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png" alt="digg" /></a> | <a href="http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/07/20/xtradb-storage-engine-release-1-0-3-6/&amp;title=XtraDB storage engine release 1.0.3-6" title="Submit this post on reddit.com"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png" alt="reddit" /></a> | <a href="http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/07/20/xtradb-storage-engine-release-1-0-3-6/&amp;T=XtraDB storage engine release 1.0.3-6" title="Vote for this article on Netscape"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif" alt="netscape" /></a> | <a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/07/20/xtradb-storage-engine-release-1-0-3-6/&amp;title=XtraDB storage engine release 1.0.3-6" title="Add to Google Bookmarks"><img src="http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png" alt="Google Bookmarks" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.mysqlperformanceblog.com/2009/07/20/xtradb-storage-engine-release-1-0-3-6/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
