DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

DynamoDB


DynamoDB is a managed NoSQL database service provided by Amazon Web Services. As it is managed by Amazon, users do not have to worry about operations such as hardware provisioning, configuration, and scaling.[04]

The offering primarily targets key-value and document storage.

Database Entry

DynamoDB


DynamoDB is a managed NoSQL database service provided by Amazon Web Services. As it is managed by Amazon, users do not have to worry about operations such as hardware provisioning, configuration, and scaling. The offering primarily targets key-value and document storage.[04]

History[05][06]


Amazon runs an e-commerce platform for millions of concurrent users, so the underlying services powering the platform must be highly reliable and scalable. Failures in infrastructure would have significant financial consequences and would degrade consumer trust in Amazon's platform. Thus, the motivating purpose behind DynamoDB was a data-store used by these services that could keep up in both availability and scalability such that infrastructure failures would not affect user experience.

The original concept and implementation of DynamoDB was first introduced in 2007 with a paper titled: "Dynamo: Amazon’s Highly Available Key-value Store"

The managed DynamoDB service was launched by AWS in January of 2012.

Compression[07]


While DynamoDB doesn't natively support compression, users can compress large attributes into binary data using compression algorithms like LZO or GZIP.

Concurrency Control[08]


Users have the ability to enable Optimistic Locking for DynamoDB using the AWS Java SDK.

Data Model[09]


DynamoDB is schemaless. Each table requires a primary key to identify its corresponding data item. However, there are no such constraints on non-key attributes.

DynamoDB can hold both structured or semi-structured data, such as JSON or XML.

Foreign Keys[10]


DynamoDB does not natively support foreign keys as it is not a relational database.

Indexes


Isolation Levels[11]


DynamoDB has three configurable isolation levels: Read Uncommitted, Read Committed, and Repeatable Reads.

Joins[12]


DynamoDB does not support joins natively as it is a key-value store and not a relational database. However, Amazon's EMR service supports joining DynamoDB tables.

Query Compilation


Query Interface[13]


Users can query the database via a CLI or SDKs.

Storage Architecture[05]


DynamoDB supports a pluggable local persistence engine that can range from in-memory buffers with persistent backing to purely disk-oriented ones. This allows it to be flexible with an application's access patterns.

Storage Model[05]


Stored Procedures[14][15]


Although DynamoDB doesn't natively support stored procedures, users can use AWS Lambdas for a similar effect.

System Architecture[05]


Nodes are partitioned via consistent hashing, and utilize gossip-based membership protocol.

Views[16]


DynamoDB Streams can create materialized views of data in DynamoDB tables.

Citations

17 sources
  1. Fast NoSQL Key-Value Database – Amazon DynamoDB – AWS amazon.com
  2. Amazon DynamoDB Documentation amazon.com
  3. Amazon DynamoDB - Wikipedia wikipedia.org
  4. Amazon DynamoDB - Developer Guide amazon.com
  5. Microsoft Word - sosp067-decandia1.doc allthingsdistributed.com
  6. Amazon switches on DynamoDB cloud database service | ZDNET zdnet.com
  7. Best practices for storing large items and attributes in DynamoDB - Amazon DynamoDB amazon.com
  8. DynamoDB and optimistic locking with version number - Amazon DynamoDB amazon.com
  9. Learn how to go from SQL to NoSQL - Amazon DynamoDB amazon.com
  10. What is Amazon DynamoDB? - Amazon DynamoDB amazon.com
  11. dynamodb-transactions/DESIGN.md at master · awslabs/dynamodb-transactions · GitHub github.com
  12. Export, import, query, and join tables in DynamoDB using Amazon EMR - Amazon EMR amazon.com
  13. Querying tables in DynamoDB - Amazon DynamoDB amazon.com
  14. Migrating to DynamoDB from a relational database - Amazon DynamoDB amazon.com
  15. Forums | AWS re:Post repost.aws
  16. DynamoDB streams use cases and design patterns | AWS Database Blog amazon.com
  17. https://www.allthingsdistributed.com/2012/01/amazon-dynamodb.html allthingsdistributed.com
Revision #18 Last Updated: