Dynamo (storage system) explained

Dynamo is a set of techniques that together can form a highly available key-value structured storage system or a distributed data store.[1] It has properties of both databases and distributed hash tables (DHTs). It was created to help address some scalability issues that Amazon experienced during the holiday season of 2004.[2] By 2007, it was used in Amazon Web Services, such as its Simple Storage Service (S3).

Relationship to DynamoDB

Amazon DynamoDB is "built on the principles of Dynamo"[3] and is a hosted service within the AWS infrastructure. However, while Dynamo is based on leaderless replication, DynamoDB uses single-leader replication.[4]

Principles

Techniques

Problem Technique Advantage
Dataset partitioning Incremental, possibly linear scalability in proportion to the number of collaborating nodes.
Highly available writes Vector Clock or Dotted-Version-Vector Sets, reconciliation during reads Version size is decoupled from update rates.
Handling temporary failures Provides high availability and durability guarantee when some of the replicas are not available.
Recovering from permanent failures Can be used to identify differences between replica owners and synchronize divergent replicas pro-actively.
Membership and failure detection Gossip-based membership protocol and failure detection Avoids having a centralized registry for storing membership and node liveness information, preserving symmetry.

Implementations

Amazon published the paper on Dynamo, but never released its implementation. The index layer of Amazon S3 implements and extends many core features of Dynamo. Since then, several implementations have been created based on the paper. The paper also inspired many other NoSQL database implementations, such as Apache Cassandra, Project Voldemort and Riak.

See also

References

  1. Book: Decandia . G. . Hastorun . D. . Jampani . M. . Kakulapati . G. . Lakshman . A. . Pilchin . A. . Sivasubramanian . S. . Vosshall . P. . Vogels . W. . Dynamo: Amazon's Highly Available Key-value Store . 10.1145/1294261.1294281 . Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles - SOSP '07 . 205 . 2007 . 9781595935915 . 221033483 .
  2. http://readwrite.com/2012/01/18/amazon-enters-the-nosql-market Amazon Takes Another Pass at NoSQL with DynamoDB
  3. http://www.allthingsdistributed.com/2012/01/amazon-dynamodb.html Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications
  4. Book: Kleppmann . Martin . Designing Data-Intensive Applications . April 2, 2017 . O'Reilly Media . 978-1449373320 . 177 . 1 . Dynamo is not available to users outside of Amazon. Confusingly, AWS offers a hosted database product called DynamoDB, which uses a completely different architecture: it is based on single-leader replication..

External links