NoSQL Zone is brought to you in partnership with:

Mitch Pronschinske is the Lead Research Analyst at DZone. Researching and compiling content for DZone's research guides is his primary job. He likes to make his own ringtones, watches cartoons/anime, enjoys card and board games, and plays the accordion. Mitch is a DZone Zone Leader and has posted 2577 posts at DZone. You can read more from them at their website. View Full User Profile

Amazon's DynamoDB Returns as a Managed, Hosted NoSQL Service

01.18.2012
| 10573 views |
  • submit to reddit
DynamoDB is back.  This was the word today out of Amazon sending shockwaves through the development world.  If the days of cheap cloud-based NoSQL databases weren't here already, they certainly are now.  We expect this announcement to have serious consequences in for NoSQL consumers and businesses that sell NoSQL products.  

Price and convenience are going to be the most lucrative aspects of this service.

Here's a lowdown on the pricing (note that it's based on write/read operations, not API calls):

Pay only for what you use. There is no minimum fee. Estimate your monthly bill using the Simple Monthly Calculator.

Free Tier*


As part of AWS’s Free Usage Tier, new AWS customers can get started with Amazon DynamoDB for free. DynamoDB customers get 100 MB of free storage, as well 5 writes/second and 10 reads/second of ongoing throughput capacity.

Throughput Capacity

Write Throughput: $0.01 per hour for every 10 units of Write Capacity
Read Throughput: $0.01 per hour for every 50 units of Read Capacity

And if you need it, here's some more clarification from Werner Vogels:

Storage is $1 per GB per month. Requests are priced based on how much capacity is reserved: $0.01 per hour for every 10 units of Write Capacity and $0.01 per hour for every 50 units of Read Capacity. A unit of Read (or Write) Capacity equals one read (or write) per second of capacity for items up to 1KB in size. If you use eventually consistent reads, you can achieve twice as many reads per second for a given amount of Read Capacity. Larger items will require additional throughput capacity.

-- Werner Vogels

Dynamo is not the first managed host service for a NoSQL database.  Membase, hosted Riak, and a few other custom deployments like neo4j on Heroku, are alternative examples, but Dynamo is the first one that can autoshard based on SLA.

Here's our TL;DR of the feature list:

  • SSD data storage

  • Average service-side latencies in the single-digit millisecond range for a 1KB object, according to Werner Vogels

  • Synchronous data replication across AWS Zones

  • Integrates with Amazon's MapReduce (Cheap "Big Data" anyone?)

  • Scalar and multi-value data types

  • Provisioned Throughput - specify the request throughput capacity you need for a given table

  • Allows eventually consistent and consistent reads (consistent reads cost 2x the price of eventually consistent reads)

  • Conditional writes support

  • Atomic counters support

  • JSON is not used for the native storage schema but it can be used for sending and receiving data

  • Uses Hash Type Primary Keys - Primary key is a hash attributed with an unordered hash index built on it …

  • …. Or you can use Hash and Range Type Primary Keys - Primary key is made up of hash and range attributes with the hash index built on the hash attribute and the sorted range index built on the range attribute.

  • You can reserve capacity in read/write terms during table modification

  • Table level operations - create, list, update, describe

  • Data level operations - get, batch get, put (create or update), update, scan, delete, query

For a more high level look at the features, I suggest reading Werner Vogel's announcement and the announcement on Amazon.  Vogel's article also gives you a little history lesson on DynamoDB (if you remember, it was the basis for NoSQL stores like Cassandra).  You can also read Amazon's paper from 2007 [pdf] that discussed the key-value theory that would become the basis for many other NoSQL data stores.

For the deep dive documentation - set aside some time to peruse the Developer's Guide

Finally, for some comparison, Jonathan Ellis of DataStax (full disclosure: a company that sells Cassandra-based products) has created an initial comparison chart between Cassandra and DynamoDB.


Image source

It was interesting that one of the commenters (Robert Gentel) also thought that Cassandra was technically superior, but still found that the price and convenience of having a NoSQL store as a hosted service was the determining factor for why he'd choose DynamoDB right now.  Cassandra (and other data stores like neo4j) does however have a Heroku add on for cloud hosting.

Are you as enthusiastic about DynamoDB right now?