<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" 
      xmlns:thr="http://purl.org/syndication/thread/1.0">
  <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php" />
  <link rel="self" type="application/atom+xml" href="http://www.readwriteweb.com/atom.xml" />
  <id>tag:,2008:/1/tag:72.47.210.69,2007://1.3159-</id>
  <updated>2008-09-24T12:08:59Z</updated>
  <title>Comments for A Guide to Business Development 2.0</title>
  
  <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.1</generator>
  <entry>
    <id>tag:72.47.210.69,2007://1.3159</id>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.readwriteweb.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=3159" title="Amazon Dynamo: The Next Generation Of Virtual Distributed Storage" />
    <published>2007-10-31T05:50:37Z</published>
    <updated>2007-12-16T23:08:19Z</updated>
    <title>Amazon Dynamo: The Next Generation Of Virtual Distributed Storage</title>
    <summary> A few weeks ago, Werner Vogels, the CTO of Amazon, published a long technical paper on his blog about Amazon&apos;s highly available storage system called Dynamo. The paper itself is quite complex and technical and includes a description of the architecture, algorithms and tests that Amazon has been doing with the system. Yet, even...</summary>
    <author>
      <name>Alex Iskold</name>
      <uri>http://www.adaptiveblue.com</uri>
    </author>
    
    <category term="Analysis" />
    
    <content type="html" xml:lang="en" xml:base="http://www.readwriteweb.com/">
      <![CDATA[<p><img src="http://www.readwriteweb.com/images/amazon_logo_jan07.jpg" vspace="5" hspace="5" align="left">
A few weeks ago, <a href="http://www.allthingsdistributed.com">Werner Vogels</a>, the CTO of Amazon, published a long <a href="http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html">technical paper</a> on his blog about 
Amazon's highly available storage system called Dynamo. The paper itself is quite complex and technical and includes a description of the architecture,
algorithms and tests that Amazon has been doing with the system. 
</p>

<p>Yet, even from a casual glance, it is clear that Amazon's work is very important. Since <a href="http://www.readwriteweb.com/archives/amazon_webos.php">early last year</a>,
the e-commerce giant has been making forays into becoming a Web OS company.  Amazon has been methodically exposing pieces of its own infrastructure as commodity web
services, and in the process confusing Wall Street analysts and
making thousands of startups quite happy.</p>]]>
      <![CDATA[<p><img src="http://www.readwriteweb.com/images/aws-stack-oct07.jpg" vspace="5" hspace="5"></p>

<p>Dr. Vogels has been both the architect and the evangelist of this effort. In his <a href="http://www.readwriteweb.com/archives/etech_amazon_cto_aws.php">speech</a> at last year's ETech conference 
he explained that by leveraging the Amazon Web Services Stack, web developers are finally able to focus on the core business logic of their apps and services.
Hiding the enormous complexity of building a scalable web business behind a simple API, Amazon is paving the way toward a whole
new web ballgame.</p>

<p>What Vogels talked about on his blog a few weeks back is not a public web service, but a piece of internal infrastructure,
which allows Amazon to service millions of customers. The paper is a unique revelation about the inner workings of
one of just a handful of Internet giants. It is also a preview of the web services to come in the next decade. In this post
we take a close look at Dynamo, discuss where it fits and consider its implications.</p>

<h2>Scalability Issues With Relational Databases</h2>

<p>Before discussing Dynamo it is worth taking look back to understand its origins. One of the most powerful
and useful technologies that has been powering the web since its early days is the relational database.
Particularly, relational databases have been used a lot for retail sites where visitors are able to browse and search for products.
Modern relational database are able to handle millions of products and service very large sites.
</p>

<p>
However, it is difficult to create redundancy and parallelism with relational databases, so
they become a single point of failure. In particular, replication is not trivial. To understand why, consider
the problem of having two database servers that need to have identical data. Having both servers for reading and writing
data makes it difficult to synchronize changes. Having one master server and another slave is bad too, because the master has to
take all the heat when users are writing information. 
</p>

<p><img src="http://www.readwriteweb.com/images/relational-db-scalability.jpg" vspace="5" hspace="5"></p>

<p>So as a relational database grows, it becomes a bottle neck and the point of failure for the entire system.
As mega e-commerce sites grew over the past decade they became aware of this issue - adding more web servers does not help because it is the database
that ends up being a problem.</p>

<h2>Dynamo - A Distributed Storage System</h2>

<p>Unlike a relational database, Dynamo is a distributed storage system. Like a relational database it is stores information
to be retrieved, but it does not break the data into tables. Instead all objects are stored and looked up via a key.
A simple way to think about such a system is in terms of URLs. When you navigate to the page on Amazon for the last
Harry Potter book, <strong>http://www.amazon.com/gp/product/0545010225</strong> you see a page that includes a 
description of the book, customer reviews, related books, and so on. To create this page, Amazon's infrastructure
has to perform many database lookups, the most basic of which is to grab information about the book from its URL
(or, more likely, from its ASIN - a unique code for each Amazon product, 0545010225 in this case).
</p>

<p><img src="http://www.readwriteweb.com/images/distributed-storage-system.jpg" vspace="5" hspace="5"></p>

<p>
In the figure above we show a concept schematic for how a distributed storage system works.
The information is distributed around a ring of computers, each computer is identical. To ensure fault tolerance, in case
a particular node breaks down, the data is made redundant, so each object is stored in the system multiple times.</p>
<p>

<p>In technical terms, Dynamo is called an <em>eventually consistent storage system</em>. The terminology
may seem a bit odd, but as it turns out creating a distributed storage solution which is both responsive
and consistent is a difficult problem. As you can tell from the diagram above, if one computer updates object A,
these changes need to propagate to other machines. This is done using asynchronous communication, which is why
the system is called "eventually consistent." 
</p>

<h2>How Dynamo Works</h2>

<p>The technical details in Vogels' paper are quite complex, but the way in which Dynamo works can be understood more simply.
First, like Amazon S3, Dynamo offers a simple <strong>put</strong> and <strong>get</strong> interface. Each <strong>put</strong>
requires the <em>key</em>, <em>context</em> and the <em>object</em>. The context is based on the object and is used by Dynamo
for validating updates. Here is the high level description of Dynamo and a <strong>put</strong> request:</p>

<p>
<ul>
<li>Physical nodes are thought of as identical and organized into a ring.</li>
<li>Virtual nodes are created by the system and mapped onto physical nodes, so that hardware
can be swapped for maintenance and failure.</li>
<li>The partitioning algorithm is one of the most complicated pieces of the system, it specifies which nodes will store
a given object.</li>
<li>The partitioning mechanism automatically scales as nodes enter and leave the system.</li>
<li>Every object is asynchronously replicated to N nodes.</li>
<li>The updates to the system occur asynchronously and may result in multiple copies of the object in the system with slightly
different states.</li>
<li>The discrepancies in the system are reconciled after a period of time, ensuring eventual consistency.</li>
<li>Any node in the system can be issued a <strong>put</strong> or <strong>get</strong> request for any key.</li>
</ul>
</p>

<p>So Dynamo is quite complex, but is also conceptually simple. It is inspired by the way things work in nature - based on
self-organization and emergence. Each node is identical to other nodes, the nodes can come in and out of existence, and the data is automatically
balanced around the ring - all of this makes Dynamo similar to an ant colony or beehive.</p>

<p>Finally, Dynamo's internals are implemented in Java. The choice is likely because, as we've <a href="http://www.readwriteweb.com/archives/java_a_retrospective.php">written here</a>,
Java is an elegant programming language, which allows the appropriate level of object-orineted modeling. And yes, once again, it is fast enough!
</p>

<h2>Dynamo - The SLA In A Box</h2>

<p>Perhaps the most stunning revelation about Dynamo is that it can be tuned using just a handful parameters to achieve
different, technical goals that in turn support different business requirements. Dynamo is a storage service in the box driven by an SLA.
Different applications at Amazon use different configurations of Dynamo depending on their tolerence to delays or data discrepancy.
The paper lists these main uses of Dynamo:
</p>

<blockquote>
<p>
<strong>Business logic specific reconciliation</strong>: This is a popular use case for Dynamo. Each data object is replicated across multiple nodes. The shopping cart service is a prime example of this category.    
<br />
<strong>Timestamp based reconciliation</strong>: This case differs from the previous one only in the reconciliation mechanism. The service that maintains customers' session information is a good example of a service that uses this mode.
<br />
<strong>High performance read engine</strong>: While Dynamo is built to be an "always writeable" data store, a few services are tuning its quorum characteristics and using it as a high performance read engine. Services that maintain a product catalog and promotional items fit in this category.</p>
</blockquote>

<p>Dynamo shows once again how disciplined and rare Amazon is at using and re-using its infrastructure. The technical management
must have realized early on that the very survival of the business depended on common, bullet proof, flexible, and scalable software systems.
Amazon succeeded in both implementing and spreading the infrastructure through the company. It truly earned the mandate to then
leverage its internal pieces and offer them as web services.</p>

<h2>How Does Dynamo Fit With AWS?</h2>

<p>The short answer is that it does not, because it is not a public service. The short answer is also shortsighted because
there are clear implications. First, is that since Amazon is committed to building a stack of web services, a version of Dynamo
is likely to be available to the public at some time in the future.</p>

<p>Second, Amazon is restless in its innovation; and that applies to web services as well as it applies to its retail business. S3 has already made possible a whole new generation
of startups and web services and Dynamo is likely to do the same when it comes out. And we know that more is likely to come, as even with
Dynamo, the stack of web services is far from complete.
</p>

<p>Finally, Amazon is showing openness - a highly valuable characteristic. Surely, Google and Microsoft
have similar systems, but Amazon is putting them out in the open and turning its infrastructure into a business faster
than its competitors. It is this openness that will allow Amazon to build trust and community around their Web Services stack. It is a powerful force, which is likely to win over developers and business people as well.</p>

<h2>The Future - Amazon Web OS</h2>

<p>To any computer scientist or software engineer to watch what Amazon is doing is both awesome and humbling.
Taking complex theoretical concepts and algorithms, adopting them to business environments (down to the SLA!), proving
that they work at the world's largest retail site, and then turning around and making them available to the rest of the world
is nothing short of a tour-de-force. What Emre Sokullu called <a href="http://www.readwriteweb.com/archives/amazon_haas_hardware_as_a_service.php">HaaS (Hardware as a Service)</a> in his post
yesterday is not only an innovative business strategy, but also a triumph of software engineering.</p>

<p>Amazon is on track to roll out more virtual web services, which will collectively  amount to a web operating system.
The building blocks that are already in place and the ones to come are going to be remixed to create new web applications
that were simply not possible before. As we have <a href="http://www.readwriteweb.com/archives/the_future_of_software_development.php">written here recently</a>, it is the libraries that make it possible to create giant systems
with just a handful of engineers. Amazon's Web Services are going to make web-scale computing available to anyone. This is
unimaginably powerful. This future is almost here, so we can begin thinking about it today. What kinds of things do you want to build
with existing and coming Amazon Web Services?</p>]]>
    </content>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25675</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25675" />
    <title>Comment from Dan Grossman on 2007-10-30</title>
    <author>
        <name>Dan Grossman</name>
        <uri>http://www.dangrossman.info</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.dangrossman.info">
        <![CDATA[<p>The day Amazon releases an automatically scaling RDBMS is the day I start developing entirely on their platform! Scaling the database is absolutely the most difficult part of every web app I've worked on.</p>]]>
    </content>
    <published>2007-10-31T06:47:59Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25676</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25676" />
    <title>Comment from ga on 2007-10-31</title>
    <author>
        <name>ga</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Any similarity with the GFS technology of google ?</p>]]>
    </content>
    <published>2007-10-31T07:30:17Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25677</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25677" />
    <title>Comment from Xavier Tassin on 2007-10-31</title>
    <author>
        <name>Xavier Tassin</name>
        <uri>http://www.pagelayer.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.pagelayer.com">
        <![CDATA[<p>This is very impressive. Dynamo could be great for session persistence or as a virtual file system but will not replace relational databases. The RDB bottleneck is pushed back a bit but if you want to sort or search your data, it's still needed somewhere.</p>

<p>What could be built upon it? Well, now the "file system" is there, what about a distributed and scalable relational database?</p>]]>
    </content>
    <published>2007-10-31T10:11:00Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25678</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25678" />
    <title>Comment from bernard lunn on 2007-10-31</title>
    <author>
        <name>bernard lunn</name>
        <uri>http://bernardlunn.wordpress.com/wp-admin/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://bernardlunn.wordpress.com/wp-admin/">
        <![CDATA[<p>Thanks Alex, I read the Vogels paper and got some of it before the eyes glazed over - I needed my CS tutor to explain it properly! Everybody assumes that RDBMS is forever (same was true with flat files when RDBMS first came along). I am not sure. The ability to mashup up data from multiple APIs is a different more distributed way to get to the end result - that looks like a game changer ie may change the rules at the backend. Sure everybody wants "distributed and scalable relational database?" (as they are invested in RDBMS) but how many people have tried to build that and failed...? Bernard</p>]]>
    </content>
    <published>2007-10-31T13:30:29Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25679</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25679" />
    <title>Comment from Kiula on 2007-10-31</title>
    <author>
        <name>Kiula</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>So why can this "distributed processing with a key" not be a schematic done with RDBMSes? It seems more a structuring issue than a big new technology. The best reason to try RDBMS is all the complex (sophisticated) querying, updating, replication, etc technology that has gone into developing them. I don't see the big draw of this supposedly newfangled tech.</p>]]>
    </content>
    <published>2007-10-31T14:08:36Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25680</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25680" />
    <title>Comment from Pat on 2007-10-31</title>
    <author>
        <name>Pat</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>We already have systems like that on the open, it's called couchDB and Hadoop/Hbase from apache, do your google.</p>]]>
    </content>
    <published>2007-10-31T14:36:53Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25681</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25681" />
    <title>Comment from Darren on 2007-10-31</title>
    <author>
        <name>Darren</name>
        <uri>http://darrenstuart.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://darrenstuart.com">
        <![CDATA[<p>I think someone needs to develop a file based RDBMS. I think it could be done.</p>]]>
    </content>
    <published>2007-10-31T15:03:50Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25682</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25682" />
    <title>Comment from Norman on 2007-10-31</title>
    <author>
        <name>Norman</name>
        <uri>http://web500.us</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://web500.us">
        <![CDATA[<p>Amazon bought a number of companies but it seems to me that it has not captured the full value of these conpanies.</p>]]>
    </content>
    <published>2007-10-31T15:06:29Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25683</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25683" />
    <title>Comment from Greg C. on 2007-10-31</title>
    <author>
        <name>Greg C.</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Great summary Alex.  One of the most interesting points in Dr. Vogel's paper was the choice they made between data consistency and application availability, they chose the latter.  The built-in replication facilities of traditional RDBMS just can‚Äôt scale to that level, and necessitates failing transactions when replication nodes go off-line.  Amazon admits that the ‚Äúeventually consistent‚Äù model doesn‚Äôt work for all applications, e.g. ATM, but for a shopping cart Amazon made the decision that it‚Äôs ok for a user to possibly see different versions of the cart, and let the system eventually reconcile the two versions.  </p>

<p>It will be interesting to see if there enough useful applications that can be built on the Amazon platform given the latency issues of the Internet and the bandwidth required to support a high volume of transactions.</p>]]>
    </content>
    <published>2007-10-31T15:27:59Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25684</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25684" />
    <title>Comment from Sanford on 2007-10-31</title>
    <author>
        <name>Sanford</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>The author isn't being very critical or helpful here.  Dynamo is a distributed filesystem (think persistent memcache) not a RDBMS (no complex query facilities, etc).</p>

<p>An interesting article would be how Dynamo compares to Google's GFS (or CMU's AFS, etc).</p>]]>
    </content>
    <published>2007-10-31T16:39:01Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25685</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25685" />
    <title>Comment from paul on 2007-10-31</title>
    <author>
        <name>paul</name>
        <uri>http://thingsilearn.wordpress.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://thingsilearn.wordpress.com">
        <![CDATA[<p>Great summary Alex - thanks for running articles like this and helping people like me avoid having to read through lengthy technical docs!</p>]]>
    </content>
    <published>2007-10-31T19:54:24Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25686</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25686" />
    <title>Comment from JP Werlin on 2007-10-31</title>
    <author>
        <name>JP Werlin</name>
        <uri>http://www.pipelinedeals.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.pipelinedeals.com">
        <![CDATA[<p>Alex - an educational and insightful post. Thank you - put RWW on top of my Reader for good.</p>

<p>I really don't think that the mainstream press has picked up on what Amazon is up to - all are focused on Google (including Cringley) and their stock price. Amazon is arguably leapfrogging Google's much vaunted claim to the web-scale computing throne of tomorrow. </p>

<p>Dynamo alongside S3, SQS and EC2 is the last piece in the puzzle and once it falls into place, everyone will need to sit down and think about how this reshuffles the world as we know it. The epitome of a disruptive technology for sure.</p>]]>
    </content>
    <published>2007-11-01T03:34:27Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25687</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25687" />
    <title>Comment from Werner on 2007-11-01</title>
    <author>
        <name>Werner</name>
        <uri>http://www.allthingsdistributed.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.allthingsdistributed.com">
        <![CDATA[<p>Alex congratulations on an excellent summary. I like it that you picked up on one of the most important parts of the design; the ability to configure durability, consistency and cost to get the performance SLAs desired.</p>

<p>Thanks for the other kind words!</p>]]>
    </content>
    <published>2007-11-02T04:18:03Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25688</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25688" />
    <title>Comment from Arun Vijayan on 2007-11-04</title>
    <author>
        <name>Arun Vijayan</name>
        <uri>http://webforth.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://webforth.com">
        <![CDATA[<p>It is pretty clear that Amazon is more innovative in distributed computing space. The greatness is not about being innovative, it is all about letting people use it. Of course for a price, which matters little. </p>

<p>I cannot think about using a CDN for content delivery but only s3. They make entrepreneurs confident and cross the extra mile. They win hands down.</p>]]>
    </content>
    <published>2007-11-04T13:37:45Z</published>
  </entry>

  <entry>
    <id>tag:72.47.210.69,2007://1.3159-comment:25689</id>
    <thr:in-reply-to ref="tag:72.47.210.69,2007://1.3159" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php"/>
    <link rel="alternate" type="text/html" href="http://www.readwriteweb.com/archives/amazon_dynamo.php#c25689" />
    <title>Comment from Naveen on 2007-11-04</title>
    <author>
        <name>Naveen</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Excellent summary Alex!!</p>

<p>Thank you!!</p>]]>
    </content>
    <published>2007-11-04T14:36:15Z</published>
  </entry>

</feed>