<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: ACID versus BASE for database transactions</title>
	<atom:link href="http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/</link>
	<description>The blog of John D. Cook</description>
	<lastBuildDate>Sat, 11 Feb 2012 01:10:06 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Juan Trejo</title>
		<link>http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/comment-page-1/#comment-123448</link>
		<dc:creator>Juan Trejo</dc:creator>
		<pubDate>Mon, 19 Dec 2011 20:25:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2607#comment-123448</guid>
		<description>What can you tell me about COBOL and databases of sorts? Our world’s  most dependable systems (such as Banking information) still rely on Mainframes, basically because they do their work very well.

Is it fair to get these into comparison between traditional DBMS ACID DB’s and NoSQL BASE DB’s?</description>
		<content:encoded><![CDATA[<p>What can you tell me about COBOL and databases of sorts? Our world’s  most dependable systems (such as Banking information) still rely on Mainframes, basically because they do their work very well.</p>
<p>Is it fair to get these into comparison between traditional DBMS ACID DB’s and NoSQL BASE DB’s?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barcelona Developers Conference 2011 - Bits &#38; Bytes</title>
		<link>http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/comment-page-1/#comment-116428</link>
		<dc:creator>Barcelona Developers Conference 2011 - Bits &#38; Bytes</dc:creator>
		<pubDate>Mon, 21 Nov 2011 19:26:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2607#comment-116428</guid>
		<description>[...] de MongoDB: ACID vs. BASE y otros conceptos de NoSQL con ejemplos en [...]</description>
		<content:encoded><![CDATA[<p>[...] de MongoDB: ACID vs. BASE y otros conceptos de NoSQL con ejemplos en [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Whats ACID and BASE is all about &#171; Best of both the worlds (ACID&#38;BASE)</title>
		<link>http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/comment-page-1/#comment-108986</link>
		<dc:creator>Whats ACID and BASE is all about &#171; Best of both the worlds (ACID&#38;BASE)</dc:creator>
		<pubDate>Wed, 19 Oct 2011 18:57:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2607#comment-108986</guid>
		<description>[...]   More readings on ACID vs BASE http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/ http://queue.acm.org/detail.cfm?id=1394128 Share this:TwitterFacebookLike this:LikeBe the first to [...]</description>
		<content:encoded><![CDATA[<p>[...]   More readings on ACID vs BASE <a href="http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf" rel="nofollow">http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf</a> <a href="http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/" rel="nofollow">http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/</a> <a href="http://queue.acm.org/detail.cfm?id=1394128" rel="nofollow">http://queue.acm.org/detail.cfm?id=1394128</a> Share this:TwitterFacebookLike this:LikeBe the first to [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tech-tack-toe &#124; Flotsam and Jetsam</title>
		<link>http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/comment-page-1/#comment-103855</link>
		<dc:creator>Tech-tack-toe &#124; Flotsam and Jetsam</dc:creator>
		<pubDate>Sat, 17 Sep 2011 06:19:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2607#comment-103855</guid>
		<description>[...] series. In Episode 0.5 we discuss the state of social media &#8212; touching on instability (ACID vs. BASE) , nymwars, and where things will be in three years (an eternity in [...]</description>
		<content:encoded><![CDATA[<p>[...] series. In Episode 0.5 we discuss the state of social media &#8212; touching on instability (ACID vs. BASE) , nymwars, and where things will be in three years (an eternity in [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim</title>
		<link>http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/comment-page-1/#comment-80358</link>
		<dc:creator>Tim</dc:creator>
		<pubDate>Mon, 09 May 2011 16:34:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2607#comment-80358</guid>
		<description>fwiw, ACID&#039;s nothing to do with DBMS. Come to that Relational&#039;s nothing to do with ACID.  ACID&#039;s a behavioural model that has semantics that can be understood by programmers and arose, at least partly, from the observation that programmers try to hard to recover their code from errors and usually second guess wrongly.

Relational models arise to remove the typing constraints of CODASYL and the poor a priori understanding of how data elements relate to each other.

As Mike hints, OLTP systems can now comfortably scale to millions of concurrent online users. At that scale, outages that bring down the whole system are a pain - they&#039;re still mostly caused by human error, whether programmer or operator - and the partitioning benefits of BASE kick in.</description>
		<content:encoded><![CDATA[<p>fwiw, ACID&#8217;s nothing to do with DBMS. Come to that Relational&#8217;s nothing to do with ACID.  ACID&#8217;s a behavioural model that has semantics that can be understood by programmers and arose, at least partly, from the observation that programmers try to hard to recover their code from errors and usually second guess wrongly.</p>
<p>Relational models arise to remove the typing constraints of CODASYL and the poor a priori understanding of how data elements relate to each other.</p>
<p>As Mike hints, OLTP systems can now comfortably scale to millions of concurrent online users. At that scale, outages that bring down the whole system are a pain &#8211; they&#8217;re still mostly caused by human error, whether programmer or operator &#8211; and the partitioning benefits of BASE kick in.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Swaim</title>
		<link>http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/comment-page-1/#comment-20734</link>
		<dc:creator>Mike Swaim</dc:creator>
		<pubDate>Tue, 07 Jul 2009 12:59:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2607#comment-20734</guid>
		<description>I&#039;d like to point out that this problem was solved 30+ years ago. Airlines need ACID, and run really high volume systems. The big difference is that they&#039;re not using SQL databases. AFAIK, attempts to duplicate the SABER system using a SQL database failed.
(Besides SQL databases and object databases, there are heirarchical databases. MUMPS, which is widely used in the healthcare industry uses a heirarchical database in its default implementation, I believe.)</description>
		<content:encoded><![CDATA[<p>I&#8217;d like to point out that this problem was solved 30+ years ago. Airlines need ACID, and run really high volume systems. The big difference is that they&#8217;re not using SQL databases. AFAIK, attempts to duplicate the SABER system using a SQL database failed.<br />
(Besides SQL databases and object databases, there are heirarchical databases. MUMPS, which is widely used in the healthcare industry uses a heirarchical database in its default implementation, I believe.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wedge</title>
		<link>http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/comment-page-1/#comment-20729</link>
		<dc:creator>Wedge</dc:creator>
		<pubDate>Tue, 07 Jul 2009 08:51:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2607#comment-20729</guid>
		<description>It&#039;s interesting how today there is a lot of debate about the comparative advantages of functional programming vs. mutable-state systems (especially in distributed or multi-threaded environments), and there is also this long standing object vs. relational impedance mismatch problem. Yet it seems like not a lot of ideas have permeated the mostly arbitrary boundary between &quot;programming&quot; and &quot;databases&quot; (I suppose this is a testament to the success of the relational database model up to this point). We don&#039;t even have very good terminology to talk about non-relational databases, and there doesn&#039;t seem to be much discussion about functional programming ideas (especially immutable data) applied to databases. I think we&#039;re on the right track with versioned records and some of the distributed source control systems out there. CouchDB, big table, git, mercurial, etc, are all good experiments that I think are steps in the right direction. But you can see how limited and immature these ideas are compared to the richness and maturity of the relational db ecosystem.

Ultimately I think the peak of the relational database era is on the horizon (in the next 5-10 years) and we&#039;ll see &quot;databases&quot; founded on different models rise and become dominant (due to the fundamental scalability problems of relational data more than anything). Nevertheless, I don&#039;t think anyone today has yet found the right model/featureset that will form the core of the SQL killer data systems of the future.</description>
		<content:encoded><![CDATA[<p>It&#8217;s interesting how today there is a lot of debate about the comparative advantages of functional programming vs. mutable-state systems (especially in distributed or multi-threaded environments), and there is also this long standing object vs. relational impedance mismatch problem. Yet it seems like not a lot of ideas have permeated the mostly arbitrary boundary between &#8220;programming&#8221; and &#8220;databases&#8221; (I suppose this is a testament to the success of the relational database model up to this point). We don&#8217;t even have very good terminology to talk about non-relational databases, and there doesn&#8217;t seem to be much discussion about functional programming ideas (especially immutable data) applied to databases. I think we&#8217;re on the right track with versioned records and some of the distributed source control systems out there. CouchDB, big table, git, mercurial, etc, are all good experiments that I think are steps in the right direction. But you can see how limited and immature these ideas are compared to the richness and maturity of the relational db ecosystem.</p>
<p>Ultimately I think the peak of the relational database era is on the horizon (in the next 5-10 years) and we&#8217;ll see &#8220;databases&#8221; founded on different models rise and become dominant (due to the fundamental scalability problems of relational data more than anything). Nevertheless, I don&#8217;t think anyone today has yet found the right model/featureset that will form the core of the SQL killer data systems of the future.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Lemire</title>
		<link>http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/comment-page-1/#comment-20697</link>
		<dc:creator>Daniel Lemire</dc:creator>
		<pubDate>Mon, 06 Jul 2009 16:51:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=2607#comment-20697</guid>
		<description>One clean way to deal with some of these problems is through Resource Versioning (ETags):

http://code.google.com/apis/gdata/docs/2.0/reference.html#ResourceVersioning

The trick is this: the data you get might be stale, but because it is tagged with a version number, it is not inconsistent with anybody&#039;s else version. If each of us got some data about the number of remaining books, and our numbers disagree, then whoever has the latest version number knows he has the right version.

In this universe, data is immutable. That is, you get  values as...

&quot;inventory of book x at revision number y was z&quot;

This is a fact. All servers will agree on it, no matter what. Compare with the simpler

&quot;inventory of book x is z&quot;

This can be inconsistent from server to server. 

I think that trying to build scalable systems without etags is crazy.

Of course, one central authority must grant these version numbers. Someone, somewhere, must have the definitive say on the number of books remaining. But with a physical resource like books, that&#039;s unavoidable, isn&#039;t it?

Moreover, you can partition the authority. For example, one server is in charge of all of the books starting with the letter A. (Better yet, using consistent hashing... http://michaelnielsen.org/blog/?p=613)
 
BTW I don&#039;t think it happens often that Amazon sells the same book twice. If these types of errors happen due to database errors, I&#039;d like to know about it.</description>
		<content:encoded><![CDATA[<p>One clean way to deal with some of these problems is through Resource Versioning (ETags):</p>
<p><a href="http://code.google.com/apis/gdata/docs/2.0/reference.html#ResourceVersioning" rel="nofollow">http://code.google.com/apis/gdata/docs/2.0/reference.html#ResourceVersioning</a></p>
<p>The trick is this: the data you get might be stale, but because it is tagged with a version number, it is not inconsistent with anybody&#8217;s else version. If each of us got some data about the number of remaining books, and our numbers disagree, then whoever has the latest version number knows he has the right version.</p>
<p>In this universe, data is immutable. That is, you get  values as&#8230;</p>
<p>&#8220;inventory of book x at revision number y was z&#8221;</p>
<p>This is a fact. All servers will agree on it, no matter what. Compare with the simpler</p>
<p>&#8220;inventory of book x is z&#8221;</p>
<p>This can be inconsistent from server to server. </p>
<p>I think that trying to build scalable systems without etags is crazy.</p>
<p>Of course, one central authority must grant these version numbers. Someone, somewhere, must have the definitive say on the number of books remaining. But with a physical resource like books, that&#8217;s unavoidable, isn&#8217;t it?</p>
<p>Moreover, you can partition the authority. For example, one server is in charge of all of the books starting with the letter A. (Better yet, using consistent hashing&#8230; <a href="http://michaelnielsen.org/blog/?p=613)" rel="nofollow">http://michaelnielsen.org/blog/?p=613)</a></p>
<p>BTW I don&#8217;t think it happens often that Amazon sells the same book twice. If these types of errors happen due to database errors, I&#8217;d like to know about it.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.341 seconds -->

