<?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: Dynamo: A flawed architecture - Part I</title>
	<atom:link href="http://jsensarma.com/blog/2009/11/dynamo-a-flawed-architecture-part-i/feed/" rel="self" type="application/rss+xml" />
	<link>http://jsensarma.com/blog/2009/11/dynamo-a-flawed-architecture-part-i/</link>
	<description>musings on computing and storage</description>
	<pubDate>Wed, 10 Mar 2010 13:11:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Mike Spreitzer</title>
		<link>http://jsensarma.com/blog/2009/11/dynamo-a-flawed-architecture-part-i/comment-page-1/#comment-154</link>
		<dc:creator>Mike Spreitzer</dc:creator>
		<pubDate>Fri, 13 Nov 2009 04:10:56 +0000</pubDate>
		<guid isPermaLink="false">http://jsensarma.com/blog/?p=55#comment-154</guid>
		<description>BTW, the hash trees that Dynamo uses are credited to Ralph, not Angela.  It is spelled "Merkle".</description>
		<content:encoded><![CDATA[<p>BTW, the hash trees that Dynamo uses are credited to Ralph, not Angela.  It is spelled &#8220;Merkle&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tecosystems &#187; links for 2009-11-11</title>
		<link>http://jsensarma.com/blog/2009/11/dynamo-a-flawed-architecture-part-i/comment-page-1/#comment-153</link>
		<dc:creator>tecosystems &#187; links for 2009-11-11</dc:creator>
		<pubDate>Thu, 12 Nov 2009 01:05:01 +0000</pubDate>
		<guid isPermaLink="false">http://jsensarma.com/blog/?p=55#comment-153</guid>
		<description>[...] Dynamo: A flawed architecture &#8211; Part I « Joydeep Sen Sarma’s blog pushback to Dynamo (tags: dynamo amazon scalability architecture distributed computing scaling nosql key-value eventual consistency) [...]</description>
		<content:encoded><![CDATA[<p>[...] Dynamo: A flawed architecture &#8211; Part I « Joydeep Sen Sarma’s blog pushback to Dynamo (tags: dynamo amazon scalability architecture distributed computing scaling nosql key-value eventual consistency) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lee</title>
		<link>http://jsensarma.com/blog/2009/11/dynamo-a-flawed-architecture-part-i/comment-page-1/#comment-148</link>
		<dc:creator>Lee</dc:creator>
		<pubDate>Wed, 04 Nov 2009 16:17:38 +0000</pubDate>
		<guid isPermaLink="false">http://jsensarma.com/blog/?p=55#comment-148</guid>
		<description>Why are you assuming dynamo only runs in one data center?</description>
		<content:encoded><![CDATA[<p>Why are you assuming dynamo only runs in one data center?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dynamo - Part I: a followup and re-rebuttals &#171; Joydeep Sen Sarma&#8217;s blog</title>
		<link>http://jsensarma.com/blog/2009/11/dynamo-a-flawed-architecture-part-i/comment-page-1/#comment-130</link>
		<dc:creator>Dynamo - Part I: a followup and re-rebuttals &#171; Joydeep Sen Sarma&#8217;s blog</dc:creator>
		<pubDate>Tue, 03 Nov 2009 09:44:03 +0000</pubDate>
		<guid isPermaLink="false">http://jsensarma.com/blog/?p=55#comment-130</guid>
		<description>[...] About                   &#171; Dynamo: A flawed architecture - Part I [...]</description>
		<content:encoded><![CDATA[<p>[...] About                   &laquo; Dynamo: A flawed architecture - Part I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joydeep</title>
		<link>http://jsensarma.com/blog/2009/11/dynamo-a-flawed-architecture-part-i/comment-page-1/#comment-128</link>
		<dc:creator>Joydeep</dc:creator>
		<pubDate>Mon, 02 Nov 2009 22:54:40 +0000</pubDate>
		<guid isPermaLink="false">http://jsensarma.com/blog/?p=55#comment-128</guid>
		<description>what i mean is that Cassandra nodes are probably co-located in a small set of racks different from web tier. as such any network partitioning that separates the web tier from Cassandra will cause downtimes. So regardless of how tolerant Cassandra itself is of partitions - partitions in a data center are intolerable. that is what i mean by saying that Cassandra as a service is 'centralized'.

Once one comes around to this point of view - it becomes clear that tolerating partitions within a data center is a non-goal. one should design for consistency and availability in a data center and only worry about partitioning at higher levels in the system (and only for applications/data-sets that are not ok with single data center service SLA). Imposing the overheads implied by partition tolerance on environments that do not have partitions is simply wrong.</description>
		<content:encoded><![CDATA[<p>what i mean is that Cassandra nodes are probably co-located in a small set of racks different from web tier. as such any network partitioning that separates the web tier from Cassandra will cause downtimes. So regardless of how tolerant Cassandra itself is of partitions - partitions in a data center are intolerable. that is what i mean by saying that Cassandra as a service is &#8216;centralized&#8217;.</p>
<p>Once one comes around to this point of view - it becomes clear that tolerating partitions within a data center is a non-goal. one should design for consistency and availability in a data center and only worry about partitioning at higher levels in the system (and only for applications/data-sets that are not ok with single data center service SLA). Imposing the overheads implied by partition tolerance on environments that do not have partitions is simply wrong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nathan Hauritz</title>
		<link>http://jsensarma.com/blog/2009/11/dynamo-a-flawed-architecture-part-i/comment-page-1/#comment-127</link>
		<dc:creator>Nathan Hauritz</dc:creator>
		<pubDate>Mon, 02 Nov 2009 21:52:36 +0000</pubDate>
		<guid isPermaLink="false">http://jsensarma.com/blog/?p=55#comment-127</guid>
		<description>Why do you state that Cassandra is centralized? Deployments at Digg and at our end do not use Zookeeper at all. Could you elaborate on what you mean by Cassandra cluster is centralized?</description>
		<content:encoded><![CDATA[<p>Why do you state that Cassandra is centralized? Deployments at Digg and at our end do not use Zookeeper at all. Could you elaborate on what you mean by Cassandra cluster is centralized?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joydeep</title>
		<link>http://jsensarma.com/blog/2009/11/dynamo-a-flawed-architecture-part-i/comment-page-1/#comment-126</link>
		<dc:creator>Joydeep</dc:creator>
		<pubDate>Mon, 02 Nov 2009 21:27:02 +0000</pubDate>
		<guid isPermaLink="false">http://jsensarma.com/blog/?p=55#comment-126</guid>
		<description>@Dave - thanks for writing a good rebuttal. when i get some more time - i will try to address the points you have raised (although i might have addressed/incorporated one of them already).

to address your comments here: even though Cassandra is not Dynamo - it has much more in common with Dynamo than Big Table. In terms of CAP - it's almost entirely Dynamo (except for the part about vector clocks and multiple versions). In it's agreement with the architectural principles of Symmetry and Decentralization - it's all Dynamo (except, as i noted, it's starting to use Zookeeper).</description>
		<content:encoded><![CDATA[<p>@Dave - thanks for writing a good rebuttal. when i get some more time - i will try to address the points you have raised (although i might have addressed/incorporated one of them already).</p>
<p>to address your comments here: even though Cassandra is not Dynamo - it has much more in common with Dynamo than Big Table. In terms of CAP - it&#8217;s almost entirely Dynamo (except for the part about vector clocks and multiple versions). In it&#8217;s agreement with the architectural principles of Symmetry and Decentralization - it&#8217;s all Dynamo (except, as i noted, it&#8217;s starting to use Zookeeper).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joydeep</title>
		<link>http://jsensarma.com/blog/2009/11/dynamo-a-flawed-architecture-part-i/comment-page-1/#comment-125</link>
		<dc:creator>Joydeep</dc:creator>
		<pubDate>Mon, 02 Nov 2009 20:52:33 +0000</pubDate>
		<guid isPermaLink="false">http://jsensarma.com/blog/?p=55#comment-125</guid>
		<description>@Nathan - you are right we are close to the horse's mouth. My conclusion (shared by others) is that Cassandra cannot give any kind of consistency without reading from all the replicas because of the way node failures and rejoins are handled as i described in this note. the list truncation is a real scenario that i am looking at in my application - so it's a show stopper. you may want to reconsider ur evaluation (or perhaps this case does not apply to you). the performance impact of reading from all replicas all the time is likely to be unacceptable.  i don't understand how you are doing conflict resolution with only client timestamp. how can u know that the latest timestamp does not contain a valid update? if u can explain - i will happily incorporate into my post.

i also didn't talk about performance - because i wanted to focus on architecture. however when people talk glibly about reading from all replicas or about the whole vector timestamping thing (which involves reading all versions) - i would point out how expensive this type of stuff is likely to be. Cassandra has stuff stored in multiple files - and reading all versions in means much more expensive in terms of disk seeks.

@Taylor - i would be very interested in learning about Dynamo deployment at Amazon. I am pretty sure that Facebook's Cassandra cluster is centralized. i am not sure about our exact memcache layout - but i do know that our requests to memcache cross core switches - and that core switch issues have caused some degree of isolation between web and memcache tiers in the past. so in that sense our memcache tier is 'centralized' and we had better ensure very good connectivity between these different tiers (which we try our best to do).</description>
		<content:encoded><![CDATA[<p>@Nathan - you are right we are close to the horse&#8217;s mouth. My conclusion (shared by others) is that Cassandra cannot give any kind of consistency without reading from all the replicas because of the way node failures and rejoins are handled as i described in this note. the list truncation is a real scenario that i am looking at in my application - so it&#8217;s a show stopper. you may want to reconsider ur evaluation (or perhaps this case does not apply to you). the performance impact of reading from all replicas all the time is likely to be unacceptable.  i don&#8217;t understand how you are doing conflict resolution with only client timestamp. how can u know that the latest timestamp does not contain a valid update? if u can explain - i will happily incorporate into my post.</p>
<p>i also didn&#8217;t talk about performance - because i wanted to focus on architecture. however when people talk glibly about reading from all replicas or about the whole vector timestamping thing (which involves reading all versions) - i would point out how expensive this type of stuff is likely to be. Cassandra has stuff stored in multiple files - and reading all versions in means much more expensive in terms of disk seeks.</p>
<p>@Taylor - i would be very interested in learning about Dynamo deployment at Amazon. I am pretty sure that Facebook&#8217;s Cassandra cluster is centralized. i am not sure about our exact memcache layout - but i do know that our requests to memcache cross core switches - and that core switch issues have caused some degree of isolation between web and memcache tiers in the past. so in that sense our memcache tier is &#8216;centralized&#8217; and we had better ensure very good connectivity between these different tiers (which we try our best to do).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nathan Hauritz</title>
		<link>http://jsensarma.com/blog/2009/11/dynamo-a-flawed-architecture-part-i/comment-page-1/#comment-124</link>
		<dc:creator>Nathan Hauritz</dc:creator>
		<pubDate>Mon, 02 Nov 2009 18:54:45 +0000</pubDate>
		<guid isPermaLink="false">http://jsensarma.com/blog/?p=55#comment-124</guid>
		<description>Here is another insightful note - http://dizzyd.com/blog/post/172</description>
		<content:encoded><![CDATA[<p>Here is another insightful note - <a href="http://dizzyd.com/blog/post/172" rel="nofollow">http://dizzyd.com/blog/post/172</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nathan Hauritz</title>
		<link>http://jsensarma.com/blog/2009/11/dynamo-a-flawed-architecture-part-i/comment-page-1/#comment-123</link>
		<dc:creator>Nathan Hauritz</dc:creator>
		<pubDate>Mon, 02 Nov 2009 17:51:55 +0000</pubDate>
		<guid isPermaLink="false">http://jsensarma.com/blog/?p=55#comment-123</guid>
		<description>BTW Cassandra came from Facebook. Also isn't one of the guys from Dynamo too. I mean the answers are within your reach.</description>
		<content:encoded><![CDATA[<p>BTW Cassandra came from Facebook. Also isn&#8217;t one of the guys from Dynamo too. I mean the answers are within your reach.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
