<?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>Xaprb &#187; High Availability</title>
	<atom:link href="http://www.xaprb.com/blog/tag/high-availability/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xaprb.com/blog</link>
	<description>Stay curious!</description>
	<lastBuildDate>Thu, 09 Feb 2012 10:55:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Free webinar on preventing MySQL downtime</title>
		<link>http://www.xaprb.com/blog/2011/10/13/free-webinar-on-preventing-mysql-downtime/</link>
		<comments>http://www.xaprb.com/blog/2011/10/13/free-webinar-on-preventing-mysql-downtime/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 16:56:14 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[Downtime]]></category>
		<category><![CDATA[High Availability]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[ODTUG]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=2510</guid>
		<description><![CDATA[I&#8217;ll be presenting a free one-hour webinar on preventing downtime in production MySQL servers, in conjunction with the ODTUG. It is scheduled on Thursday, November 10, 2011 3:00 PM &#8211; 4:00 PM EST, and you can register for free. Here&#8217;s an abstract of what you&#8217;ll learn: Everyone wants to prevent database downtime by being proactive, [...]


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2010/08/23/free-webinar-on-mysql-performance-this-thursday/' rel='bookmark' title='Permanent Link: Free webinar on MySQL performance this Thursday'>Free webinar on MySQL performance this Thursday</a></li>
<li><a href='http://www.xaprb.com/blog/2012/01/16/free-webinar-wednesday-verifying-replication-integrity/' rel='bookmark' title='Permanent Link: Free webinar Wednesday: verifying replication integrity'>Free webinar Wednesday: verifying replication integrity</a></li>
<li><a href='http://www.xaprb.com/blog/2011/11/02/free-devopsdc-meetup-on-tuesday/' rel='bookmark' title='Permanent Link: Free DevOpsDC meetup on Tuesday'>Free DevOpsDC meetup on Tuesday</a></li>
<li><a href='http://www.xaprb.com/blog/2008/05/21/i-moved-this-blog-to-pairlite-with-zero-downtime-and-it-was-easy/' rel='bookmark' title='Permanent Link: I moved this blog to pairLite with zero downtime, and it was easy'>I moved this blog to pairLite with zero downtime, and it was easy</a></li>
<li><a href='http://www.xaprb.com/blog/2012/02/07/three-free-mysql-webinars/' rel='bookmark' title='Permanent Link: Three free MySQL webinars'>Three free MySQL webinars</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be presenting a free one-hour webinar on preventing downtime in production MySQL servers, in conjunction with the ODTUG. It is scheduled on Thursday, November 10, 2011 3:00 PM &#8211; 4:00 PM EST, and you can <a href="https://www3.gotomeeting.com/register/229757198">register for free</a>.</p>

<p>Here&#8217;s an abstract of what you&#8217;ll learn:</p>

<p>Everyone wants to prevent database downtime by being proactive, but how effective are the common measures such as inspecting logs and analyzing SQL? To be truly proactive, one must prevent problems, which requires studying and understanding the reasons for downtime. We have analyzed a selection of emergency issues that we have solved, to better understand what types of problems really occur in production environments. The results are somewhat surprising, and will be detailed in this talk. Most incidents we found were not MySQL-specific and will be familiar to Oracle DBAs as well as MySQL DBAs. This presentation will be valuable for the new or seasoned DBA, as well as to operational managers/directors and CTOs responsible for business critical implementations.</p>

<p>Please <a href="https://www3.gotomeeting.com/register/229757198">register today</a> and I look forward to joining you.</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2010/08/23/free-webinar-on-mysql-performance-this-thursday/' rel='bookmark' title='Permanent Link: Free webinar on MySQL performance this Thursday'>Free webinar on MySQL performance this Thursday</a></li>
<li><a href='http://www.xaprb.com/blog/2012/01/16/free-webinar-wednesday-verifying-replication-integrity/' rel='bookmark' title='Permanent Link: Free webinar Wednesday: verifying replication integrity'>Free webinar Wednesday: verifying replication integrity</a></li>
<li><a href='http://www.xaprb.com/blog/2011/11/02/free-devopsdc-meetup-on-tuesday/' rel='bookmark' title='Permanent Link: Free DevOpsDC meetup on Tuesday'>Free DevOpsDC meetup on Tuesday</a></li>
<li><a href='http://www.xaprb.com/blog/2008/05/21/i-moved-this-blog-to-pairlite-with-zero-downtime-and-it-was-easy/' rel='bookmark' title='Permanent Link: I moved this blog to pairLite with zero downtime, and it was easy'>I moved this blog to pairLite with zero downtime, and it was easy</a></li>
<li><a href='http://www.xaprb.com/blog/2012/02/07/three-free-mysql-webinars/' rel='bookmark' title='Permanent Link: Three free MySQL webinars'>Three free MySQL webinars</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2011/10/13/free-webinar-on-preventing-mysql-downtime/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to scale writes with master-master replication in MySQL</title>
		<link>http://www.xaprb.com/blog/2008/08/06/how-to-scale-writes-with-master-master-replication-in-mysql/</link>
		<comments>http://www.xaprb.com/blog/2008/08/06/how-to-scale-writes-with-master-master-replication-in-mysql/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 12:17:16 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[High Availability]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[replication]]></category>
		<category><![CDATA[scaling]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/2008/08/06/how-to-scale-writes-with-master-master-replication-in-mysql/</guid>
		<description><![CDATA[This post is SEO bait for people trying to scale MySQL&#8217;s write capacity by writing to both servers in master-master replication. The short answer: you can&#8217;t do it. It&#8217;s impossible. I keep hearing this line of reasoning: &#8220;if I make a MySQL replication &#8216;cluster&#8217; and move half the writes to machine A and half of [...]


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2008/02/29/how-to-sync-tables-in-master-master-mysql-replication/' rel='bookmark' title='Permanent Link: How to sync tables in master-master MySQL replication'>How to sync tables in master-master MySQL replication</a></li>
<li><a href='http://www.xaprb.com/blog/2009/08/30/failure-scenarios-and-solutions-in-master-master-replication/' rel='bookmark' title='Permanent Link: Failure scenarios and solutions in master-master replication'>Failure scenarios and solutions in master-master replication</a></li>
<li><a href='http://www.xaprb.com/blog/2007/04/07/how-to-know-if-a-mysql-slave-is-identical-to-its-master/' rel='bookmark' title='Permanent Link: How to know if a MySQL slave is identical to its master'>How to know if a MySQL slave is identical to its master</a></li>
<li><a href='http://www.xaprb.com/blog/2010/02/08/how-postgresql-protects-against-partial-page-writes-and-data-corruption/' rel='bookmark' title='Permanent Link: How PostgreSQL protects against partial page writes and data corruption'>How PostgreSQL protects against partial page writes and data corruption</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/23/how-fast-is-mysql-replication/' rel='bookmark' title='Permanent Link: How fast is MySQL replication?'>How fast is MySQL replication?</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>This post is SEO bait for people trying to scale MySQL&#8217;s write capacity by writing to both servers in master-master replication.  The short answer: you can&#8217;t do it.  It&#8217;s impossible.</p>

<p>I keep hearing this line of reasoning: &#8220;if I make a MySQL replication &#8216;cluster&#8217; and move half the writes to machine A and half of them to machine B, I can increase my overall write capacity.&#8221;  It&#8217;s a fallacy.  All writes are repeated on both machines: the writes you do on machine A are repeated via replication on machine B, and vice versa.  You don&#8217;t shield either machine from any of the load.</p>

<p>In addition, doing this introduces a very dangerous side effect: in case of a problem, neither machine has the authoritative data.  Neither machine&#8217;s data can be trusted, but neither machine&#8217;s data can be discarded either.  This is a very difficult situation to recover from.  Save yourself grief, work, and money.  <strong>Never write to both masters</strong>.</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2008/02/29/how-to-sync-tables-in-master-master-mysql-replication/' rel='bookmark' title='Permanent Link: How to sync tables in master-master MySQL replication'>How to sync tables in master-master MySQL replication</a></li>
<li><a href='http://www.xaprb.com/blog/2009/08/30/failure-scenarios-and-solutions-in-master-master-replication/' rel='bookmark' title='Permanent Link: Failure scenarios and solutions in master-master replication'>Failure scenarios and solutions in master-master replication</a></li>
<li><a href='http://www.xaprb.com/blog/2007/04/07/how-to-know-if-a-mysql-slave-is-identical-to-its-master/' rel='bookmark' title='Permanent Link: How to know if a MySQL slave is identical to its master'>How to know if a MySQL slave is identical to its master</a></li>
<li><a href='http://www.xaprb.com/blog/2010/02/08/how-postgresql-protects-against-partial-page-writes-and-data-corruption/' rel='bookmark' title='Permanent Link: How PostgreSQL protects against partial page writes and data corruption'>How PostgreSQL protects against partial page writes and data corruption</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/23/how-fast-is-mysql-replication/' rel='bookmark' title='Permanent Link: How fast is MySQL replication?'>How fast is MySQL replication?</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2008/08/06/how-to-scale-writes-with-master-master-replication-in-mysql/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>More progress on High Performance MySQL, Second Edition</title>
		<link>http://www.xaprb.com/blog/2008/01/12/more-progress-on-high-performance-mysql-second-edition/</link>
		<comments>http://www.xaprb.com/blog/2008/01/12/more-progress-on-high-performance-mysql-second-edition/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 17:07:31 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[Arjen Lentz]]></category>
		<category><![CDATA[High Availability]]></category>
		<category><![CDATA[load balancing]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[OpenOffice.org]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[Peter Zaitsev]]></category>
		<category><![CDATA[replication]]></category>
		<category><![CDATA[scaling]]></category>
		<category><![CDATA[sharding]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[technical review]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/2008/01/12/more-progress-on-high-performance-mysql-second-edition/</guid>
		<description><![CDATA[<p>Whew!  I just finished a marathon of revisions.  It's been a while since I posted about our progress, so here's an update for the curious readers.</p>


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2007/11/10/progress-report-on-high-performance-mysql-second-edition/' rel='bookmark' title='Permanent Link: Progress report on High Performance MySQL, Second Edition'>Progress report on High Performance MySQL, Second Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/11/29/progress-on-high-performance-mysql-second-edition/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL, Second Edition'>Progress on High Performance MySQL, Second Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/18/high-performance-mysql-second-edition-replication-scaling-and-high-availability/' rel='bookmark' title='Permanent Link: High Performance MySQL, Second Edition: Replication, Scaling and High Availability'>High Performance MySQL, Second Edition: Replication, Scaling and High Availability</a></li>
<li><a href='http://www.xaprb.com/blog/2011/10/12/progress-on-high-performance-mysql-3rd-edition/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL 3rd Edition'>Progress on High Performance MySQL 3rd Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/02/progress-on-high-performance-mysql-backup-and-recovery-chapter/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL Backup and Recovery chapter'>Progress on High Performance MySQL Backup and Recovery chapter</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Whew!  I just finished a marathon of revisions.  It&#8217;s been a while since I posted about our progress, so here&#8217;s an update for the curious readers.</p>

<p>I just finished revising the last two major chapters that <a href="http://www.mysqlperformanceblog.com/">Peter Zaitsev</a> hasn&#8217;t yet reviewed.  Peter has been essentially going through the chapters like a very thorough technical reviewer.  He makes corrections, points out where things aren&#8217;t clear or need examples, and adds more material.</p>

<p>By &#8220;finished revising,&#8221; I mean finished expanding the outline into a full chapter.  We&#8217;re still working at the level of &#8220;this chapter is mostly there, but we might decide to revise it more.&#8221; We will most certainly do so in many cases.  There are some chunks of material that I&#8217;ve marked TODO to put into other chapters, for example.  We&#8217;re not at the level of a final draft with any chapter except the chapter on MySQL&#8217;s architecture, but we&#8217;re getting close with the others now.</p>

<p>Most of the chapters are in tech review now, and we&#8217;ve gotten a few of them back.  The comments from the reviewers have been very helpful.  We expanded the Replication chapter quite a bit after tech review.  (And then Peter reviewed it and we expanded it even more).  When the tech reviewers return comments on the other chapters, we&#8217;ll revise some more.</p>

<p>We&#8217;re up to 529 pages in OpenOffice.org now.  At my calculated ratio of 1 page = 1.1 pages in print, that&#8217;s about 582 pages in print.  And that&#8217;s not counting the Replication chapter, which doesn&#8217;t have all of its illustrations yet.  I predicted we&#8217;d break 500 pages; we might get close to 600.  These are very, very densely written, too.  No offense to the first edition, but the tone is quite different; much less light-hearted banter, much more compressed information.  Peter is a walking encyclopedia, and never seems to run out of details we really ought to include because they&#8217;re important (and they are).</p>

<p>We may, or may not, go to production in the next few weeks.  Regardless, I think we&#8217;re still on track to have the book on shelves by the <a href="http://www.mysqlconf.com/">MySQL Conference &#038; Expo</a> in April.  Look for me there.  I&#8217;ll be easy to find: I&#8217;ll be the tall guy with a permanent silly grin.  (You&#8217;d grin too if you finished writing a book that&#8217;s been this much work!)</p>

<p>I&#8217;ve posted rough outlines for many of the other chapters.  The two Peter and I just finished working on are the Scaling/HA/Load-Balancing/Failover chapter, and the Application-Level Optimization chapter.  The Scaling/HA chapter is pretty long and very involved, and goes into a lot of detail on scaling in particular, especially horizontal scaling via sharding.  (We use &#8220;sharding&#8221; because it&#8217;s less confusing than calling it &#8220;partitioning,&#8221; which already means too many different things in databases).</p>

<p>The Application-Level Optimization chapter is a little shorter. It&#8217;s mostly about caching strategies, how to make a web server run well, and so on.  These aren&#8217;t what the book focuses on directly, but you can either help or hurt the database server a lot with your application design.  Our goal here is to help people avoid the common mistakes.</p>

<p>For the curious, here&#8217;s the current outline for these two chapters:</p>

<pre>Scaling and High Availability
  Terminology
  Scaling MySQL
    Planning for Scalability
    Buying Time Before Scaling
    Scaling Up
    Scaling Out
      Functional Partitioning
      Data Sharding
      Choosing a Partitioning Key
        Multiple Partitioning Keys
      Querying Across Shards
      Allocating Data, Shards, and Nodes
        Arranging Shards on Nodes
      Fixed Allocation
      Dynamic Allocation
        Mixing Dynamic and Fixed Allocation
      Explicit Allocation
      Sidebar: Re-Balancing Shards
      Tools for Sharding
    Scaling Back
      Keeping Active Data Separate
    Scaling by Clustering
      Clustering
      Federation
  Load Balancing
    Connecting Directly
      Splitting Reads and Writes in Replication
      Changing Application Configuration
      Changing DNS Names
      Moving IP Addresses
    Introducing a Middleman
      MySQL Proxy
      Load Balancers
    Load Balancing Algorithms
      Adding and Removing Servers in the Pool
    Load Balancing with a Master and Multiple Slaves
  High Availability
    Planning for High Availability
    Adding Redundancy
      Shared-Storage Architectures
      Replicated-Disk Architectures
      Synchronous MySQL Replication
    Failover and Failback
      Promoting a Slave or Switching Roles
      Virtual IP Addresses or IP Takeover
      MySQL Master-Master Replication Manager
      Middleman Solutions
      Handling Failover in the Application
</pre>

<p>And here&#8217;s the outline for the Application-Level Optimization chapter:</p>

<pre>Application-Level Optimization
  Application Performance Overview
    Find the Source of the Problem
    Look for Common Problems
  Web Server Issues
    Finding the Optimal Concurrency
  Caching
    Sidebar: Caching Doesn't Always Help
    Caching Below the Application
    Application-Level Caching
    Cache Control Policies
    Cache Object Hierarchies
    Pre-Generating Content
  Extending MySQL
  Alternatives to MySQL</pre>

<p>The thing that makes me the happiest right now is that we&#8217;re clearly going to make it.  For a while, there was just so much work left to do that it was impossible to estimate how much.  (Ask my wife: I was wrong many times when she asked how long it would take me to finish a chapter).  I also didn&#8217;t know how much revision would be necessary, which is very scary; revising takes about four times as long as writing a first draft, by my reckoning.  At this point, the remaining work is much smaller, and much easier to estimate.  And now I no longer flip-flop daily between &#8220;I think we can, I think we can&#8221; and &#8220;please don&#8217;t ask, because I don&#8217;t know and I want a vacation.&#8221;</p>

<p>Subversion shows me that Peter has the Security chapter locked right now.  This one is not a huge one, and <a href="http://openquery.com.au/">Arjen Lentz</a> has already reviewed it as well, so I don&#8217;t expect it to be a huge amount of work to revise.  After that, it&#8217;s minor chapters and appendices.  (We might actually convert the chapters on Server Status and Tools into appendices, since they got cannibalized when we realized their material fit better elsewhere.  They also don&#8217;t have a very chapter-ish feel; they feel more like appendices).  We&#8217;ve added a few more appendices, including one on EXPLAIN and one on debugging server and storage-engine locking problems.  These are all great reference material.</p>

<p>See you at the conference in April!</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2007/11/10/progress-report-on-high-performance-mysql-second-edition/' rel='bookmark' title='Permanent Link: Progress report on High Performance MySQL, Second Edition'>Progress report on High Performance MySQL, Second Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/11/29/progress-on-high-performance-mysql-second-edition/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL, Second Edition'>Progress on High Performance MySQL, Second Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/18/high-performance-mysql-second-edition-replication-scaling-and-high-availability/' rel='bookmark' title='Permanent Link: High Performance MySQL, Second Edition: Replication, Scaling and High Availability'>High Performance MySQL, Second Edition: Replication, Scaling and High Availability</a></li>
<li><a href='http://www.xaprb.com/blog/2011/10/12/progress-on-high-performance-mysql-3rd-edition/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL 3rd Edition'>Progress on High Performance MySQL 3rd Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/02/progress-on-high-performance-mysql-backup-and-recovery-chapter/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL Backup and Recovery chapter'>Progress on High Performance MySQL Backup and Recovery chapter</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2008/01/12/more-progress-on-high-performance-mysql-second-edition/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Progress report on High Performance MySQL, Second Edition</title>
		<link>http://www.xaprb.com/blog/2007/11/10/progress-report-on-high-performance-mysql-second-edition/</link>
		<comments>http://www.xaprb.com/blog/2007/11/10/progress-report-on-high-performance-mysql-second-edition/#comments</comments>
		<pubDate>Sat, 10 Nov 2007 22:44:21 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[benchmarks]]></category>
		<category><![CDATA[High Availability]]></category>
		<category><![CDATA[High Performance MySQL]]></category>
		<category><![CDATA[indexing]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[Peter Zaitsev]]></category>
		<category><![CDATA[privileges]]></category>
		<category><![CDATA[profiling]]></category>
		<category><![CDATA[query optimization]]></category>
		<category><![CDATA[scaling]]></category>
		<category><![CDATA[schema optimization]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[server status]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[tuning]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/2007/11/10/progress-report-on-high-performance-mysql-second-edition/</guid>
		<description><![CDATA[<p>It's been a while since I've written about progress on the book.  I actually stopped working on it as much at the beginning of the month, because on October 31(st) I managed to finish a first draft of the last big chapter!  Now I'm back to full-time work at my employer, and I'm working on the book in the evenings and weekends only.  Read on for details of what I've been working on and what's next in the pipeline.</p>


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2008/01/12/more-progress-on-high-performance-mysql-second-edition/' rel='bookmark' title='Permanent Link: More progress on High Performance MySQL, Second Edition'>More progress on High Performance MySQL, Second Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/11/29/progress-on-high-performance-mysql-second-edition/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL, Second Edition'>Progress on High Performance MySQL, Second Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/02/progress-on-high-performance-mysql-backup-and-recovery-chapter/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL Backup and Recovery chapter'>Progress on High Performance MySQL Backup and Recovery chapter</a></li>
<li><a href='http://www.xaprb.com/blog/2011/10/12/progress-on-high-performance-mysql-3rd-edition/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL 3rd Edition'>Progress on High Performance MySQL 3rd Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/18/high-performance-mysql-second-edition-replication-scaling-and-high-availability/' rel='bookmark' title='Permanent Link: High Performance MySQL, Second Edition: Replication, Scaling and High Availability'>High Performance MySQL, Second Edition: Replication, Scaling and High Availability</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since I&#8217;ve written about progress on the book.  I actually stopped working on it as much at the beginning of the month, because on October 31st I managed to finish a first draft of the last big chapter (Scaling and High Availability)!  Now I&#8217;m back to full-time work at my employer, and I&#8217;m working on the book in the evenings and weekends only.</p>

<p>This doesn&#8217;t mean the book is close to being done, though.  The editor is sending out some chapters for technical review, and there&#8217;s still a lot more writing  and revising to be done.</p>

<p>Last weekend I revised the Security chapter from the first edition, which I think will be the only chapter that we&#8217;ll just revise and update, rather than completely rewriting (well, maybe the Architecture chapter could be considered a revision instead of a rewrite, but it&#8217;s a stretch; we changed it a lot).  I removed a lot of the material that repeated the MySQL manual, and added a lot of information and best practices on grants, new privileges and objects in MySQL 5, common tasks, common mistakes, and so on.  The chapter ended up being nearly as long, even though I stripped out all the code listings and so on from the first edition (in fact, I reduced the first edition&#8217;s material to a few paragraphs).</p>

<p>Beyond that, though, there are little details to finish out in many of the chapters.  Examples that need to be finished, figures that need to be re-drawn, material that doesn&#8217;t quite fit and needs to be re-arranged or even moved to another chapter; it&#8217;s a lot of work.  Peter Zaitsev has been reviewing some of the core chapters on query and schema optimization etc, and I&#8217;m revising them in response to his comments.  That&#8217;s what I spent today doing.</p>

<p>I think the biggest chunks of work that remain are going to be making chapters 3, 4, 5, 6 and 7 (benchmarking, profiling, schema, indexing, query optimization, advanced features, and server tuning) flow together well.  The challenge here is how to organize the vast amount of material so it reads well, without too many forward references, and still be useful as a reference work.  The detail we&#8217;ve gone into is incredible.  It makes it very hard to find the single best place to mention each little bit of wisdom, because all of this material is completely inter-related.  It&#8217;s tough to flatten the graph of knowledge into a one-dimensional narrative.</p>

<p>It&#8217;s not just these chapters that have a lot of inter-related material, of course.  It&#8217;s hard to talk about tuning the server settings (chapter 7) without bringing the OS and hardware (chapter 8) into it, and whenever you do this you also need to think about measuring and monitoring status information (chapter 14).  Of course, you need to do that for benchmarking and profiling, too (chapter 3).  I&#8217;m sure you see the dilemma!</p>

<p>The good news is, if we succeed in doing this well, you will find the book enormously useful.  Stay tuned!</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2008/01/12/more-progress-on-high-performance-mysql-second-edition/' rel='bookmark' title='Permanent Link: More progress on High Performance MySQL, Second Edition'>More progress on High Performance MySQL, Second Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/11/29/progress-on-high-performance-mysql-second-edition/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL, Second Edition'>Progress on High Performance MySQL, Second Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/02/progress-on-high-performance-mysql-backup-and-recovery-chapter/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL Backup and Recovery chapter'>Progress on High Performance MySQL Backup and Recovery chapter</a></li>
<li><a href='http://www.xaprb.com/blog/2011/10/12/progress-on-high-performance-mysql-3rd-edition/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL 3rd Edition'>Progress on High Performance MySQL 3rd Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/18/high-performance-mysql-second-edition-replication-scaling-and-high-availability/' rel='bookmark' title='Permanent Link: High Performance MySQL, Second Edition: Replication, Scaling and High Availability'>High Performance MySQL, Second Edition: Replication, Scaling and High Availability</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2007/11/10/progress-report-on-high-performance-mysql-second-edition/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>High Performance MySQL, Second Edition: Replication, Scaling and High Availability</title>
		<link>http://www.xaprb.com/blog/2007/10/18/high-performance-mysql-second-edition-replication-scaling-and-high-availability/</link>
		<comments>http://www.xaprb.com/blog/2007/10/18/high-performance-mysql-second-edition-replication-scaling-and-high-availability/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 01:59:57 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[clustering]]></category>
		<category><![CDATA[failover]]></category>
		<category><![CDATA[High Availability]]></category>
		<category><![CDATA[load balancing]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[replication]]></category>
		<category><![CDATA[scaling]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/2007/10/18/high-performance-mysql-second-edition-replication-scaling-and-high-availability/</guid>
		<description><![CDATA[<p>Continuing in the tradition, which I hope has been as helpful to you as it has been to me, I'm opening the floor for suggestions on chapter 9 of the upcoming High Performance MySQL, Second Edition.  Unlike the other chapters for which I've listed outlines, this one isn't substantially written yet.  It's in detailed outline form at this point (a tactic that has worked very well for us so far -- I'll write about that someday).</p>

<p>I'm trying to get feedback much earlier in this chapter's lifecycle, for several reasons.  Two of the most important are that this is one of the first chapters I've had a chance to really take from scratch, and the chapters I haven't written from scratch have been harder to organize, as you've probably seen from the last few outlines I posted.  There's a lot of value in working top-down on this deep encyclopedia-style material.</p>

<p>Read on for the outline and more thoughts I just can't keep to myself.</p>


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2008/01/12/more-progress-on-high-performance-mysql-second-edition/' rel='bookmark' title='Permanent Link: More progress on High Performance MySQL, Second Edition'>More progress on High Performance MySQL, Second Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/07/high-performance-mysql-second-edition-query-performance-optimization/' rel='bookmark' title='Permanent Link: High Performance MySQL, Second Edition: Query Performance Optimization'>High Performance MySQL, Second Edition: Query Performance Optimization</a></li>
<li><a href='http://www.xaprb.com/blog/2007/09/19/high-performance-mysql-second-edition-backup-and-recovery/' rel='bookmark' title='Permanent Link: High Performance MySQL, Second Edition: Backup and Recovery'>High Performance MySQL, Second Edition: Backup and Recovery</a></li>
<li><a href='http://www.xaprb.com/blog/2007/11/29/progress-on-high-performance-mysql-second-edition/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL, Second Edition'>Progress on High Performance MySQL, Second Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2011/05/15/what-kind-of-high-availability-do-you-need/' rel='bookmark' title='Permanent Link: What kind of High Availability do you need?'>What kind of High Availability do you need?</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Continuing in the tradition, which I hope has been as helpful to you as it has been to me, I&#8217;m opening the floor for suggestions on chapter 9 of the upcoming High Performance MySQL, Second Edition.  Unlike the other chapters for which I&#8217;ve listed outlines, this one isn&#8217;t substantially written yet.  It&#8217;s in detailed outline form at this point (a tactic that has worked very well for us so far &#8212; I&#8217;ll write about that someday).</p>

<p>I&#8217;m trying to get feedback much earlier in this chapter&#8217;s lifecycle, for several reasons.  Two of the most important are that this is one of the first chapters I&#8217;ve had a chance to really take from scratch, and the chapters I haven&#8217;t written from scratch have been harder to organize, as you&#8217;ve probably seen from the last few outlines I posted.  There&#8217;s a lot of value in working top-down on this deep encyclopedia-style material.</p>

<p>The outline, as it stands now, is basically headings with bulleted lists of important details.  Here are the top-level headings:</p>

<pre>[Intro]
Scaling and High Availability Requirements
Replication Overview
Configuring Replication
Under the Hood of Replication
Replication Topologies
Replication Administration and Maintenance
Replication Problems and Solutions
The Future of MySQL Replication
Scaling MySQL Horizontally
Clustering with MySQL
   MySQL Cluster
   Other Clustering Solutions
Load Balancing</pre>

<p>Just a few notes.  These sections are top-level, and will likely be split into many sub-sections like other chapter outlines I&#8217;ve posted.  A typical section has a couple dozen bullet-points in it, at a high level of granularity, such as &#8220;Using DRBD for log replication only.&#8221;  I think we&#8217;ll also add in a separate section on fail-over and fail-back, but that&#8217;s not in the outline as of right now (what do you think belongs in it?).</p>

<p>I don&#8217;t know what it&#8217;s like for you to read outlines and see little bits of the book being assembled, but the process of writing this book is just fascinating to me.  It&#8217;s endlessly interesting and educational &#8212; just the process of writing, let alone the subject matter!  This is a really fun project.  A heck of a lot of work, but fun nonetheless, and the openness of the project makes it even more fun for me.  I&#8217;ve learned a lot of surprising and interesting things about writing.  I keep wishing I had time to write about this process, but I really need to keep my eye on the deadlines and put that off for later.</p>

<p>Anyway, the usual requests apply: what&#8217;s missing, what do you think is cool and should be included, etc etc?  Thanks, as usual, for your time and feedback.</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2008/01/12/more-progress-on-high-performance-mysql-second-edition/' rel='bookmark' title='Permanent Link: More progress on High Performance MySQL, Second Edition'>More progress on High Performance MySQL, Second Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2007/10/07/high-performance-mysql-second-edition-query-performance-optimization/' rel='bookmark' title='Permanent Link: High Performance MySQL, Second Edition: Query Performance Optimization'>High Performance MySQL, Second Edition: Query Performance Optimization</a></li>
<li><a href='http://www.xaprb.com/blog/2007/09/19/high-performance-mysql-second-edition-backup-and-recovery/' rel='bookmark' title='Permanent Link: High Performance MySQL, Second Edition: Backup and Recovery'>High Performance MySQL, Second Edition: Backup and Recovery</a></li>
<li><a href='http://www.xaprb.com/blog/2007/11/29/progress-on-high-performance-mysql-second-edition/' rel='bookmark' title='Permanent Link: Progress on High Performance MySQL, Second Edition'>Progress on High Performance MySQL, Second Edition</a></li>
<li><a href='http://www.xaprb.com/blog/2011/05/15/what-kind-of-high-availability-do-you-need/' rel='bookmark' title='Permanent Link: What kind of High Availability do you need?'>What kind of High Availability do you need?</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2007/10/18/high-performance-mysql-second-edition-replication-scaling-and-high-availability/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

