This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "Dynamo" storage system – news ·newspapers ·books ·scholar ·JSTOR(February 2017) (Learn how and when to remove this message) |
Dynamo is a set of techniques that together can form ahighly available key-valuestructured storage system[1] or adistributed data store.[1] It has properties of bothdatabases anddistributed hash tables (DHTs). It was created to help address some scalability issues thatAmazon experienced during the holiday season of 2004.[2] By 2007, it was used inAmazon Web Services, such as itsSimple Storage Service (S3).[1]
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]
| Problem | Technique | Advantage |
|---|---|---|
| Dataset partitioning | Consistent Hashing | Incremental, possibly linear scalability in proportion to the number of collaborating nodes. |
| Highly available writes | Vector Clock orDotted-Version-Vector Sets, reconciliation during reads | Version size is decoupled from update rates. |
| Handling temporary failures | Sloppy Quorum andHinted Handoff | Provides high availability and durability guarantee when some of the replicas are not available. |
| Recovering from permanent failures | Anti-entropy usingMerkle tree | 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. |
Amazon published the paper on Dynamo, but never released its implementation. The index layer ofAmazon 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 otherNoSQL database implementations, such asApache Cassandra,Project Voldemort andRiak.[2]
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.