<?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: Rounded Corners &#8211; 174 (SimpleDB overload)</title>
	<atom:link href="http://labnotes.org/2007/12/14/rounded-corners-174-simpledb-is-crowding-my-feed-reader/feed/" rel="self" type="application/rss+xml" />
	<link>http://labnotes.org/2007/12/14/rounded-corners-174-simpledb-is-crowding-my-feed-reader/</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 02:41:51 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Assaf</title>
		<link>http://labnotes.org/2007/12/14/rounded-corners-174-simpledb-is-crowding-my-feed-reader/comment-page-1/#comment-139203</link>
		<dc:creator>Assaf</dc:creator>
		<pubDate>Mon, 17 Dec 2007 18:01:23 +0000</pubDate>
		<guid isPermaLink="false">http://blog.labnotes.org/2007/12/14/rounded-corners-174-simpledb-is-crowding-my-feed-reader/#comment-139203</guid>
		<description>DAR, eventual consistency is tricker than write consistency, just like relations are tricker than hierarchical, and multi-threading is tricker than single-threaded.

Imagine a write updating a post.  Imagine two readers querying it.  All this happens concurrently with an RDBMS in the middle.  Timing could very well mean one reader gets the post before the update, and one reader after the update.

If you&#039;re that sensitive to timing issues than you have a concurrency problem with *any* database you&#039;re going to use.</description>
		<content:encoded><![CDATA[<p>DAR, eventual consistency is tricker than write consistency, just like relations are tricker than hierarchical, and multi-threading is tricker than single-threaded.</p>
<p>Imagine a write updating a post.  Imagine two readers querying it.  All this happens concurrently with an RDBMS in the middle.  Timing could very well mean one reader gets the post before the update, and one reader after the update.</p>
<p>If you&#8217;re that sensitive to timing issues than you have a concurrency problem with *any* database you&#8217;re going to use.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DAR</title>
		<link>http://labnotes.org/2007/12/14/rounded-corners-174-simpledb-is-crowding-my-feed-reader/comment-page-1/#comment-139202</link>
		<dc:creator>DAR</dc:creator>
		<pubDate>Mon, 17 Dec 2007 17:49:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.labnotes.org/2007/12/14/rounded-corners-174-simpledb-is-crowding-my-feed-reader/#comment-139202</guid>
		<description>
&quot;This “eventual consistency” greatly limits what SimpleDB can be used for. Don’t try to use it to store any sort of accounting information, for example: If you adjust an account balance twice in quick succession (with each transaction being performed as a read-modify-write sequence) there’s a good chance that you’ll lose the first transaction because it won’t have propagated by the time that you read data for the second transaction.&quot;

Actually, no. What’s going to happen in this scenario is that you’re going to end up reading both values. Unless you mark it for replacement, each write will add a value to the attribute and the following read will return both, which you can then reconcile. It’s just a matter of handling consistency at read time.


???  You can&#039;t be serious!  Eventual consistency is a much bigger issue than you&#039;re acknowledging.

Let&#039;s take another example:  A database update gets posted.  Now try to query it back from 2 different machines.  One of them sees it; the other doesn&#039;t.  The one then proceeds to continue on its merry way performing its processing with incorrect data.  The consequences of this can of course var from trivial to critical, depending on the criticality of the application and the data.

Your solution:  &quot;It’s just a matter of handling consistency at read time.&quot;

Huh?  How exactly would you suggest this consistency problem get handled at read time?</description>
		<content:encoded><![CDATA[<p>&#8220;This “eventual consistency” greatly limits what SimpleDB can be used for. Don’t try to use it to store any sort of accounting information, for example: If you adjust an account balance twice in quick succession (with each transaction being performed as a read-modify-write sequence) there’s a good chance that you’ll lose the first transaction because it won’t have propagated by the time that you read data for the second transaction.&#8221;</p>
<p>Actually, no. What’s going to happen in this scenario is that you’re going to end up reading both values. Unless you mark it for replacement, each write will add a value to the attribute and the following read will return both, which you can then reconcile. It’s just a matter of handling consistency at read time.</p>
<p>???  You can&#8217;t be serious!  Eventual consistency is a much bigger issue than you&#8217;re acknowledging.</p>
<p>Let&#8217;s take another example:  A database update gets posted.  Now try to query it back from 2 different machines.  One of them sees it; the other doesn&#8217;t.  The one then proceeds to continue on its merry way performing its processing with incorrect data.  The consequences of this can of course var from trivial to critical, depending on the criticality of the application and the data.</p>
<p>Your solution:  &#8220;It’s just a matter of handling consistency at read time.&#8221;</p>
<p>Huh?  How exactly would you suggest this consistency problem get handled at read time?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

