Dynamo (storage system)
   HOME

TheInfoList



OR:

Dynamo is a set of techniques that together can form a highly available key-value structured storage system or a
distributed data store A distributed data store is a computer network where information is stored on more than one node, often in a replicated fashion. It is usually specifically used to refer to either a distributed database where users store information on a ''numb ...
. It has properties of both
database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases s ...
s and
distributed hash table A distributed hash table (DHT) is a distributed system that provides a lookup service similar to a hash table: key–value pairs are stored in a DHT, and any participating node can efficiently retrieve the value associated with a given key. The ...
s (DHTs). It was created to help address some scalability issues that Amazon.com's website experienced during the holiday season of 2004.Amazon Takes Another Pass at NoSQL with DynamoDB
/ref> By 2007, it was used in Amazon Web Services, such as its Simple Storage Service (S3).


Relationship to DynamoDB

Amazon DynamoDB Amazon DynamoDB is a fully managed proprietary NoSQL database service that supports key–value and document data structures and is offered by Amazon.com as part of the Amazon Web Services portfolio. DynamoDB exposes a similar data model to and ...
is "built on the principles of Dynamo" and is a hosted service within the AWS infrastructure. However, while Dynamo is based on leaderless replication, DynamoDB uses single-leader replication.


Principles

* Incremental scalability: Dynamo should be able to scale out one storage host (or “node”) at a time, with minimal impact on both operators of the system and the system itself. * Symmetry: Every node in Dynamo should have the same set of responsibilities as its peers; there should be no distinguished node or nodes that take special roles or extra set of responsibilities. * Decentralization: An extension of symmetry, the design should favor decentralized peer-to-peer techniques over centralized control. * Heterogeneity: The system should be able to exploit heterogeneity in the infrastructure it runs on. For example, the work distribution must be proportional to the capabilities of the individual servers. This is essential in adding new nodes with higher capacity without having to upgrade all hosts at once.


Techniques


Implementations

Amazon published the paper on Dynamo, but never released its implementation. The index layer of
Amazon S3 Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface. Amazon S3 uses the same scalable storage infrastructure that Amazon.com uses to run its ...
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 Cassandra is a free and open-source, distributed, wide-column store, NoSQL database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. Cassand ...
,
Project Voldemort Voldemort is a distributed data store that was designed as a key-value store used by LinkedIn for highly-scalable storage. It is named after the fictional ''Harry Potter'' villain Lord Voldemort. Overview Voldemort does not try to satisfy arbitr ...
and
Riak Riak (pronounced "ree-ack" ) is a distributed NoSQL key-value data store based on Amazon's Dynamo paper, including its "tunable AP" approach, that is tunable consistency, to the tradeoffs imposed by the CAP Theorem. Riak offers high availability, ...
.


See also

*
Distributed data store A distributed data store is a computer network where information is stored on more than one node, often in a replicated fashion. It is usually specifically used to refer to either a distributed database where users store information on a ''numb ...
* NoSQL * Structured storage


References


External links


Amazon's Dynamo
(2007)
Amazon reveals its distributed storage: Dynamo
(2007) {{DEFAULTSORT:Dynamo (Storage System) Distributed data stores NoSQL