"It was one of the first NoSQL databases," explains Khawaja Shams, head of engineering at Amazon DynamoDB. "We traded off consistency and very rigid querying semantics for predictable performance, durability and scale those are the things Dynamo was super good at."
DynamoDB: A database in the cloud
Dynamo fixed many of Amazon's problems that SQL databases could not. But throughout the mid-to-late 2000s, it still wasn't perfect. Dynamo boasted the functionality that Amazon engineers needed, but required substantial resources to install and manage.
The introduction of DynamoDB in 2012 proved to be a major upgrade though. The hosted version of the database Amazon uses internally lives in Amazon Web Services' IaaS cloud and is fully managed. Amazon engineers and AWS customers don't provision a database or manage storage of the data. All they do is request the throughput they need from DynamoDB. Customers pay $0.0065 per hour for about 36,000 writes to the database (meaning the amount of data imported to the database per hour) plus $0.25 per GB of data stored in the system per month. If the application needs more capacity, then with a few clicks the database spreads the workload over more nodes.
AWS is notoriously opaque about how DynamoDB and many of its other Infrastructure-as-service products run under the covers, but this promotional video reveals that the service employs solid state drives and notes that when customers use DynamoDB, their data is spread across availability zones/data centers to ensure availability.
Forrester principal analyst Noel Yuhanna calls it a "pretty powerful" database and considers it one of the top NoSQL offerings, especially for key-value store use cases.
DynamoDB has grown significantly since its launch. While AWS will not release customer figures, company engineer James Hamilton said in November that DynamoDB has grown 3x in requests it processes annually and 4x in the amount of data it stores compared to the year prior. Even with that massive scale and growth, DynamoDB has consistently returned queries in three to four milliseconds.
Below is a video demonstrating DynamoDB's remarkably consistent performance even as more stress is put on the system.
To see a demo of DynamoDB, jump to the 16:47 mark in the video.
Feature-wise, DynamoDB has grown, too. NoSQL databases are generally broken into a handful of categories: Key-value store databases organize information with a key and a value; document databases allow full documents to be searched against; while graph databases track connections between data. DynamoDB originally started as a key-value database, but last year AWS expanded itto become a document database by supporting JSON formatted files. AWS last year also added Global Secondary Indexes to DynamoDB, which allow users to have copies of their database, typically one for production and another for querying, analytics or testing.
Sign up for Computerworld eNewsletters.