<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Using BASE instead of ACID for scalability</title>
	<atom:link href="http://www.xaprb.com/blog/2008/07/23/using-base-instead-of-acid-for-scalability/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xaprb.com/blog/2008/07/23/using-base-instead-of-acid-for-scalability/</link>
	<description>Stay curious!</description>
	<pubDate>Tue, 06 Jan 2009 08:46:08 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Kunal Jain</title>
		<link>http://www.xaprb.com/blog/2008/07/23/using-base-instead-of-acid-for-scalability/#comment-14937</link>
		<dc:creator>Kunal Jain</dc:creator>
		<pubDate>Tue, 05 Aug 2008 12:02:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/2008/07/23/using-base-instead-of-acid-for-scalability/#comment-14937</guid>
		<description>Talking about Replication I read your book High Performance Mysql. I have One Question.
What if one on a Master server have different Databases (Example DB1 DB2 DB3 ..) so how do we replicate all those Databases on the slave server. 
I have two Database servers one act as a Master and the Other as Slave. What i have is Multiple database running on the Master and i am able to replicate only one. how do i replicate all the databases on the slave server.</description>
		<content:encoded><![CDATA[<p>Talking about Replication I read your book High Performance Mysql. I have One Question.<br />
What if one on a Master server have different Databases (Example DB1 DB2 DB3 ..) so how do we replicate all those Databases on the slave server.<br />
I have two Database servers one act as a Master and the Other as Slave. What i have is Multiple database running on the Master and i am able to replicate only one. how do i replicate all the databases on the slave server.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ryan Lowe</title>
		<link>http://www.xaprb.com/blog/2008/07/23/using-base-instead-of-acid-for-scalability/#comment-14898</link>
		<dc:creator>Ryan Lowe</dc:creator>
		<pubDate>Thu, 24 Jul 2008 01:54:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/2008/07/23/using-base-instead-of-acid-for-scalability/#comment-14898</guid>
		<description>Indeed, as you said, this is a proven approach used by many "Web 2.0" sites (FaceBook, Ning, LinkedIn, etc...).  Another dimension of this method of scaling is &lt;a href="http://clarification.wordpress.com/2008/06/05/diagonal-scaling-and-the-law-of-diminishing-returns/" rel="nofollow"&gt;diagonal scaling&lt;/a&gt;.  

Most sites that choose the BASE approach ignore the "E" (Eventually Consistent) aspect, in that the application does not completely "roll back" a multi-partition transaction if any part of it fails.  This is often by design, especially for non-financial applications.  As the DBA for a Web 2.0 site, I have found that a generally-acceptable solution for this is to have what we call a "Sanity Crawler"; essentially a script that continually looks for transaction completeness based on a pre-defined rules set (i.e. if a "Friendship Transaction" has not completed after N units of time, it will attempt to complete it or roll it back, based on the rules.  If the transaction cannot be "fixed", a diagnostic message will be logged and developers will debug it).</description>
		<content:encoded><![CDATA[<p>Indeed, as you said, this is a proven approach used by many &#8220;Web 2.0&#8243; sites (FaceBook, Ning, LinkedIn, etc&#8230;).  Another dimension of this method of scaling is <a href="http://clarification.wordpress.com/2008/06/05/diagonal-scaling-and-the-law-of-diminishing-returns/" rel="nofollow" onclick="javascript:urchinTracker ('/outbound/comment/clarification.wordpress.com');">diagonal scaling</a>.  </p>
<p>Most sites that choose the BASE approach ignore the &#8220;E&#8221; (Eventually Consistent) aspect, in that the application does not completely &#8220;roll back&#8221; a multi-partition transaction if any part of it fails.  This is often by design, especially for non-financial applications.  As the DBA for a Web 2.0 site, I have found that a generally-acceptable solution for this is to have what we call a &#8220;Sanity Crawler&#8221;; essentially a script that continually looks for transaction completeness based on a pre-defined rules set (i.e. if a &#8220;Friendship Transaction&#8221; has not completed after N units of time, it will attempt to complete it or roll it back, based on the rules.  If the transaction cannot be &#8220;fixed&#8221;, a diagnostic message will be logged and developers will debug it).</p>
]]></content:encoded>
	</item>
</channel>
</rss>
