Skip to main content

Dynamo (storage system)









Dynamo (storage system)


From Wikipedia, the free encyclopedia

Jump to navigation
Jump to search






Not to be confused with ATG Dynamo, a J2EE application server


Dynamo is a set of techniques that together can form a highly available key-value structured storage system[1] 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.com's website experienced during the holiday season of 2004.[2] By 2007, it was used in Amazon Web Services, such as its Simple Storage Service (S3).[1]




Contents






  • 1 Relationship to DynamoDB


  • 2 Principles


  • 3 Techniques


  • 4 Implementations


  • 5 See also


  • 6 References


  • 7 External links





Relationship to DynamoDB[edit]


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[edit]



  • 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[edit]

































Problem Technique Advantage
Dataset partitioning Consistent Hashing 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
Sloppy Quorum and Hinted Handoff
Provides high availability and durability guarantee when some of the replicas are not available.
Recovering from permanent failures Anti-entropy using Merkle 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.


Implementations[edit]


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.[2]



See also[edit]



  • Distributed data store

  • NoSQL

  • Structured storage



References[edit]




  1. ^ abc Decandia, G.; Hastorun, D.; Jampani, M.; Kakulapati, G.; Lakshman, A.; Pilchin, A.; Sivasubramanian, S.; Vosshall, P.; Vogels, W. (2007). "Dynamo: Amazon's Highly Available Key-value Store". Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles - SOSP '07. p. 205. doi:10.1145/1294261.1294281. ISBN 9781595935915..mw-parser-output cite.citation{font-style:inherit}.mw-parser-output .citation q{quotes:"""""""'""'"}.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Lock-green.svg/9px-Lock-green.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Lock-gray-alt-2.svg/9px-Lock-gray-alt-2.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Lock-red-alt-2.svg/9px-Lock-red-alt-2.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration{color:#555}.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration span{border-bottom:1px dotted;cursor:help}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/12px-Wikisource-logo.svg.png")no-repeat;background-position:right .1em center}.mw-parser-output code.cs1-code{color:inherit;background:inherit;border:inherit;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;font-size:100%}.mw-parser-output .cs1-visible-error{font-size:100%}.mw-parser-output .cs1-maint{display:none;color:#33aa33;margin-left:0.3em}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration,.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-right{padding-right:0.2em}


  2. ^ ab http://readwrite.com/2012/01/18/amazon-enters-the-nosql-market


  3. ^ http://www.allthingsdistributed.com/2012/01/amazon-dynamodb.html


  4. ^ Kleppmann, Martin (April 2, 2017). Designing Data-Intensive Applications (1 ed.). O'Reilly Media. p. 177. ISBN 978-1449373320. 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[edit]




  • Amazon's Dynamo (2007)


  • Amazon reveals its distributed storage: Dynamo (2007)











Retrieved from "https://en.wikipedia.org/w/index.php?title=Dynamo_(storage_system)&oldid=878806565"





Navigation menu

























(window.RLQ=window.RLQ||).push(function(){mw.config.set({"wgPageParseReport":{"limitreport":{"cputime":"0.192","walltime":"0.263","ppvisitednodes":{"value":407,"limit":1000000},"ppgeneratednodes":{"value":0,"limit":1500000},"postexpandincludesize":{"value":48487,"limit":2097152},"templateargumentsize":{"value":13,"limit":2097152},"expansiondepth":{"value":6,"limit":40},"expensivefunctioncount":{"value":2,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":8116,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 197.830 1 -total"," 51.89% 102.650 2 Template:Cite_book"," 31.65% 62.611 1 Template:Refimprove"," 20.81% 41.168 1 Template:Ambox"," 11.20% 22.156 3 Template:Navbox"," 10.88% 21.527 1 Template:Amazon"]},"scribunto":{"limitreport-timeusage":{"value":"0.101","limit":"10.000"},"limitreport-memusage":{"value":2833244,"limit":52428800}},"cachereport":{"origin":"mw1331","timestamp":"20190122164319","ttl":1900800,"transientcontent":false}}});});{"@context":"https://schema.org","@type":"Article","name":"Dynamo (storage system)","url":"https://en.wikipedia.org/wiki/Dynamo_(storage_system)","sameAs":"http://www.wikidata.org/entity/Q955854","mainEntity":"http://www.wikidata.org/entity/Q955854","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https://www.wikimedia.org/static/images/wmf-hor-googpub.png"}},"datePublished":"2008-04-11T01:37:55Z","dateModified":"2019-01-17T01:33:17Z"}(window.RLQ=window.RLQ||).push(function(){mw.config.set({"wgBackendResponseTime":107,"wgHostname":"mw1238"});});

Popular posts from this blog

Florida Star v. B. J. F.

Error while running script in elastic search , gateway timeout

Adding quotations to stringified JSON object values