Loading article…
Dynamo は、高可用性のキーバリュー構造化ストレージシステム[1]または分散データストア[1]を形成できる一連の技術です。データベースと分散ハッシュテーブル(DHT)の両方の特性を備えています。Amazonが2004 年のホリデーシーズン中に経験したスケーラビリティの問題に対処するために作成されました。[2] 2007 年までに、 Simple Storage Service (S3)などのAmazon Web Services で使用されるようになりました。[1]
DynamoDBとの関係
Amazon DynamoDBは「Dynamoの原理に基づいて構築」されており[3]、AWSインフラストラクチャ内でホストされるサービスです。ただし、Dynamoはリーダーレスレプリケーションに基づいているのに対し、DynamoDBはシングルリーダーレプリケーションを使用します。[4]
原則
- 増分スケーラビリティ: Dynamo は、システムのオペレーターとシステム自体への影響を最小限に抑えながら、一度に 1 つのストレージ ホスト (または「ノード」) をスケールアウトできる必要があります。
- 対称性: Dynamo 内のすべてのノードは、そのピアと同じ責任セットを持つ必要があります。特別な役割や追加の責任セットを担う、区別されたノードは存在してはなりません。
- 分散化: 対称性の拡張として、設計では集中制御よりも分散ピアツーピア技術を優先する必要があります。
- 異種性: システムは、それが実行されるインフラストラクチャの異種性を活用できる必要があります。たとえば、作業の分散は、個々のサーバーの能力に比例する必要があります。これは、すべてのホストを一度にアップグレードすることなく、より高い容量を持つ新しいノードを追加する場合に不可欠です。
テクニック
実装
AmazonはDynamoに関する論文を発表しましたが、その実装は公開されませんでした。Amazon S3のインデックス層は、Dynamoの多くのコア機能を実装および拡張しています。それ以来、この論文に基づいていくつかの実装が作成されました。この論文は、Apache Cassandra、Project Voldemort、Riakなど、他の多くのNoSQLデータベース実装にも影響を与えました。[2]
参照
参考文献
- ^ abc Decandia, G.; Hastorun, D.; Jampani, M.; Kakulapati, G.; Lakshman, A.; Pilchin, A.; Sivasubramanian, S.; Vosshall, P.; Vogels, W. (2007). 「Dynamo: Amazon の高可用性キーバリューストア」。第 21 回 ACM SIGOPS シンポジウム「オペレーティングシステムの原則」の議事録 - SOSP '07 。p . 205。doi : 10.1145/1294261.1294281。ISBN 9781595935915. S2CID 221033483。
- ^ ab Amazon が DynamoDB で NoSQL に再び挑戦
- ^ Amazon DynamoDB – インターネット規模のアプリケーション向けに設計された高速かつスケーラブルな NoSQL データベース サービス
- ^ Kleppmann, Martin (2017 年 4 月 2 日)。データ集約型アプリケーションの設計(第 1 版)。O'Reilly Media。p. 177。ISBN 978-1449373320Dynamo は、
Amazon 以外のユーザーには利用できません。紛らわしいことに、AWS は DynamoDB と呼ばれるホスト型データベース製品を提供していますが、これはまったく異なるアーキテクチャを使用しており、シングルリーダーレプリケーションに基づいています。
外部リンク
- アマゾンのダイナモ(2007)
- Amazon が分散ストレージ「Dynamo」(2007) を発表
