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.
Optimistic Concurrency Control (OCC)
Users have the ability to enable Optimistic Locking for DynamoDB using the AWS Java SDK. For example, they can specify a property with the annotation: @DynamoDBVersionAttribute
which is then designated to store the version number for optimistic locking.
For conflict resolution, DynamoDB employs a "last writer wins" policy.
Read Uncommitted Read Committed Repeatable Read
DynamoDB has three configurable isolation levels for transactions: Read Uncommitted, Read Committed, and Repeatable Reads.
However, DynamoDB does not support locking for range queries, which can potentially result in phantom reads.
Custom API Command-line / Shell
As DynamoDB is hosted by AWS and is a NoSQL database, users must query the database through the internet using the DynamoDB API. They cannot use SQL. Users can query the database via the AWS Management Console, the AWS CLI, or the AWS SDKs.
http://aws.amazon.com/dynamodb/
https://aws.amazon.com/documentation/dynamodb/
Amazon
2012
C++, Go, JavaScript, PHP, Python, Ruby, Swift