<?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; CAP</title>
	<atom:link href="http://www.xaprb.com/blog/tag/cap/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xaprb.com/blog</link>
	<description>Stay curious!</description>
	<lastBuildDate>Wed, 28 Jul 2010 17:40:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Using BASE instead of ACID for scalability</title>
		<link>http://www.xaprb.com/blog/2008/07/23/using-base-instead-of-acid-for-scalability/</link>
		<comments>http://www.xaprb.com/blog/2008/07/23/using-base-instead-of-acid-for-scalability/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 22:07:15 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[ACID]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[Andy Oram]]></category>
		<category><![CDATA[BASE]]></category>
		<category><![CDATA[CAP]]></category>
		<category><![CDATA[Continuent]]></category>
		<category><![CDATA[foreign keys]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[replication]]></category>
		<category><![CDATA[Robert Hodges]]></category>
		<category><![CDATA[scaling]]></category>
		<category><![CDATA[transactions]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/2008/07/23/using-base-instead-of-acid-for-scalability/</guid>
		<description><![CDATA[My editor Andy Oram recently sent me an ACM article on BASE, a technique for improving scalability by being willing to give up some other properties of traditional transactional systems.

It&#8217;s a really good read.  In many ways it is the same religion everyone who&#8217;s successfully scaled a system Really Really Big has advocated.  [...]


Related posts:<ol><li><a href='http://www.xaprb.com/blog/2008/05/18/why-is-mysql-more-popular-than-postgresql/' rel='bookmark' title='Permanent Link: Why is MySQL more popular than PostgreSQL?'>Why is MySQL more popular than PostgreSQL?</a></li><li><a href='http://www.xaprb.com/blog/2007/06/13/archive-strategies-for-oltp-servers-part-1/' rel='bookmark' title='Permanent Link: Archive strategies for OLTP servers, Part 1'>Archive strategies for OLTP servers, Part 1</a></li><li><a href='http://www.xaprb.com/blog/2007/06/14/archive-strategies-for-oltp-servers-part-2/' rel='bookmark' title='Permanent Link: Archive strategies for OLTP servers, Part 2'>Archive strategies for OLTP servers, Part 2</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/2008/08/06/how-to-scale-writes-with-master-master-replication-in-mysql/' rel='bookmark' title='Permanent Link: How to scale writes with master-master replication in MySQL'>How to scale writes with master-master replication in MySQL</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>My editor <a href="http://www.oreillynet.com/pub/au/36">Andy Oram</a> recently sent me an <a href="http://acmqueue.com/modules.php?name=Content&#038;pa=showpage&#038;pid=540">ACM article on BASE, a technique for improving scalability</a> by being willing to give up some other properties of traditional transactional systems.</p>

<p>It&#8217;s a really good read.  In many ways it is the same religion everyone who&#8217;s successfully scaled a system Really Really Big has advocated.  But this is different: it&#8217;s a very clear article, with a great writing style that really cuts out the fat and teaches the principles without being specific to any environment or sounding egotistical.</p>

<p>He mentions a lot of current thinking in the field, including the CAP principle, which <a href="http://www.continuent.com/">Robert Hodges of Continuent</a> first turned me onto a couple months ago.  <a href="http://citeseer.ist.psu.edu/544596.html">It has been proven formally</a>, though I have not read the proof myself.</p>

<p>One of the most important concepts he advances is giving up the illusion of control.  As programmers and DBAs, I think we may tend to like control too much.  Foreign keys are a perfect example.  I think the point here is that these things make you feel safe, but they don&#8217;t really make you safe.  Just as with so many things in life, recognizing our inability to really control the systems we build is key to working with their strengths &#8212; instead of trying to bind them with iron bands.</p>

<p>Another great point is idempotency.  This is a great way to help avoid problems with MySQL replication, by the way.  I&#8217;ll leave the &#8220;why&#8221; as an exercise for the reader, but let me just point out that the file MySQL uses to remember its current position in replication is not synced to disk, so it will almost certainly get out of whack if MySQL dies ungracefully.  (Google has solved this problem.)</p>

<p>A highly recommended read &#8212; worth more than most case studies about how specific companies have scaled their specific systems.</p>

<p>Related posts:<ol><li><a href='http://www.xaprb.com/blog/2008/05/18/why-is-mysql-more-popular-than-postgresql/' rel='bookmark' title='Permanent Link: Why is MySQL more popular than PostgreSQL?'>Why is MySQL more popular than PostgreSQL?</a></li><li><a href='http://www.xaprb.com/blog/2007/06/13/archive-strategies-for-oltp-servers-part-1/' rel='bookmark' title='Permanent Link: Archive strategies for OLTP servers, Part 1'>Archive strategies for OLTP servers, Part 1</a></li><li><a href='http://www.xaprb.com/blog/2007/06/14/archive-strategies-for-oltp-servers-part-2/' rel='bookmark' title='Permanent Link: Archive strategies for OLTP servers, Part 2'>Archive strategies for OLTP servers, Part 2</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/2008/08/06/how-to-scale-writes-with-master-master-replication-in-mysql/' rel='bookmark' title='Permanent Link: How to scale writes with master-master replication in MySQL'>How to scale writes with master-master replication in MySQL</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2008/07/23/using-base-instead-of-acid-for-scalability/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
