Dynamo - Cloud Computing & Big Data Group Discussion を読んだ
Dynamo: Amazon’s Highly Available Key-value Store を読んだのでメモ
メモのフォーマットは下記を参考にした。
どんなもの?
- Dynamoは可用性とスケーラビリティのあるkey-value storage
- primary keyアクセスでかつ1Mより小さいデータを扱うものをターゲットにしている
- always writable
- responseの99.9percentileが300ms以内(500req/sec)
先行研究とくらべて何がすごい?
- 既存の技術の組み合わせで可用性とスケーラビリティのあるプロダクトを実装し本番で利用していること
技術や手法の肝は?
- consistent-hashingでパーティションとレプリケーションを行っている
- gossipベースのfailure detection/membership protocol
- weak-consistency(eventual consistency)によってパフォーマンス/スケーラビリティの向上
- objectはversioningされてconsistencyを担保している
- sloppy quoramとhinted hand offにより、nodeやネットワークの障害時でも可用性を担保
- anti-entropyによりレプリカの同期を行う
どうやって有効と検証した?
- 2006年12月のある日の12時間分のレスポンスタイムで検証
- 99.9%は200ms以下でレスポンスが返ってきていた
議論はある?
- eventual consistencyを用いているので、導入する際には対象のアプリケーションがweak consistencyでも大丈夫か検討する
- nodeが増えれば増えるほど(数千nodeくらい)routing tableが大きくなって、routingのコストがかかってしまう