Amazon offers its DynamoDB NoSQL database as a managed service, part of its Amazon Web Services portfolio. This immediately distinguishes it from many other key value data stores that are installed either on a user’s own servers or separate hosted servers. DynamoDB is positioned as providing guaranteed throughput and low latency independently of the volumes of data handled. The company also previously developed the Dynamo key-value store technology in 2007, which inspired Apache’s Cassandra and Basho’s Riak among others. DynamoDB was designed to combine the best aspects of Dynamo and also SimpleDB, Amazon’s other database solution. It was introduced in January 2012.
Technical Specifications and Licensing
A proprietary technology, DynamoDB runs on Amazon’s own servers with synchronous replication across multiple datacenters. Amazon aims to make DynamoDB an attractive financial alternative to customers, compared to setting up and running a key-value data store on a customer’s own premises. Users can start with a free offering that extends to up to 40 million database operations per month. Beyond this, DynamoDB then becomes a paying service charged on hourly basis. Charges are based on throughput as well as storage space used. If a user requests higher throughput, the data store then spreads the data and traffic over multiple servers. Amazon also uses solid state drives in order to give predictable performance. Auto-replication is included. Other functionality is available as options. Consistency for example can be optionally boosted from an operation taking about a second to one taking only tenths of milliseconds.
Add-Ons and Integrations
DynamoDB does not scale automatically by itself. An extra Open Source tool, Dynamic DynamoDB, offers this capability to users. This tool allows read and write flow rates to be adjusted independently within pre-defined upper and lower limits, and also with set time periods. DynamoDB also integrates with another paying service, Amazon Elastic MapReduce (EMR), for complex analyses of large volumes of data. The results of such analyses can then be stored in Amazon Simple Storage Service, leaving the original data intact in DynamoDB. EMR allows DynamoDB to be integrated with Hadoop too. Bindings to DynamoDB are available in the Java, Node.js, .NET, Perl, PHP, Python, Ruby, and Erlang programming languages.
When Would You Choose DynamoDB?
DynamoDB can be an appropriate solution for smaller organizations that want to avoid purchasing their own servers or managing their own hosted servers. Amazon recommends applications such as gaming, online advertising and mobile applications. Rapid ‘one-click’ deployment is cited in many cases, with simple administration and integrated fault tolerance. But while DynamoDB has its attractions, it also has its limitations. Users of the data store must take into account a maximum record size of 64 Kbytes, relatively small compared to other key-value store technologies. Furthermore, DynamoDB offers just two key fields. Any custom indexes must be created by the user and stored in separate tables.
Who Uses DynamoDB Today?
Amazon Dynamo DB customers include the Washington Post, which supplies up-to-the-minute information to over 34 million readers using mobile and desktop devices. AdRoll, the online advertising organization, uses the technology to generate over 7 billion ad views a day all over the world. Finally, Scopely, the mobile entertainment network, uses DynamoDB with a small team of engineers to provide gaming to millions of users.