Amazon NoSQL DynamoDB

Having used Amazons SimpleDB NoSQL Cloud database on a customer project I was interested in Amazons newly released cloud nosql db offering called DynamoDB.
Here's my notes from a webcast about DynamoDB. For massive scale, simple queries and little need for transactions the cost is amazing (see case study below).
Includes comparison to SimpleDB at bottom.

Amazon DynamoDB
In market approx 1 month since Jan 2012
DynamoDB is a NoSQL db, hosted by Amazon, access via Rest Apis
Goals: massive scalability, low latency, easy to use.

Easy to create the table (use their ui wizard to define a table and adjust scale as needs changes). Amazon provide a calculator to help you calculate out your needs, you tell them Amazon the capacity you need and they handle it. When you provision capacity is reserved.
Integrated with CloudWatch, You can setup alarms to alert if pass certain thresholds.

Integrated with Elastic MapReduce to perform complex analytics, can export data out to sources link S3
Latency is consistent as throughput and storage grows (they said). AWS handles tuning.
Case Study: customer ran 160k writes a sec for 3 days, over 90% requests were run below 6ms
They handle replication across their data center, you data is partitioned and distributed around their data centers. So don't wait to last minute to increase capacity, use alarms so you can plan in advance.

Pricing:
Pay by the hour for the throughput capacity (a unit is a write/read per sec).
  • Unit of write capacity: $0.01 per 10 units
  • Unit of read capacity: $0.01 per 50 units
  • Storage: $1 per GB
  • Free tier: 100MB, 5 writes per sec, 10 reads. This is a great option for to test it out yourself.
Case Study: during 2012 Superbowl one customer spun up a DynamoDB with 100k writes per sec (more than 10 times Twitters peak of 10k writes during Superbowl) for over 4 hours at a cost of $400...thats right four hundred bucks!..and they spun it up in a few days!

When to use:
  • when have low latency requirements
  • when you need to scale, but are not sure to what
  • reduce costs to manage (Amazon manage h/w, s/w, monitoring, providing the expertize)
  • when complex queries or transactions are not required
It is an option to combine an Rdbms and DynamoDB.

Amazon DynamoDB vs Amazon SimpleDB
  • "the 2 products are complimentary",
  • DynamoDB is for large scale
  • DynamoDB has limited query capability because DynamoDB can only query via primary key so simple query; in SimpleDB every field is inexed
  • if you need massive scale then use DynamoDB, otherwise look at SimpleDB

Comments

Popular posts from this blog

deep dive into Material UI TextField built by mui

angular js protractor e2e cheatsheet

react-router v6.4+ loaders, actions, forms and more