質問

私は使用することを検討していました Amazon dynamodb 私のアプリケーションで、そして私はそれについて質問があります アトミックカウンター 信頼性。

必要な分散アプリケーションを構築しています 同時に, 、 と 一貫して, 、Dynamoの属性に保存されたカウンターを増分/減少させます。ダイナモのアトミックカウンターがどれほど信頼できるかは、同時レベルが非常に高い重い環境にあるのではないかと思っていました(たとえば、平均20kの並行ヒット率 - アイデアを得るために、それはほぼ520億増分になります。 /月あたりの減少)。

カウンターは非常に信頼できるものでなければなりません 一度もない ヒットを逃します。誰かがそのような重要な環境でdynamodbをテストしましたか?

ありがとう

役に立ちましたか?

解決

DynamoDBは、複数のサーバーにキーを分割することにより、プロパティのスケーリングを取得します。これは、CassandraやHBaseスケールなどの他の分散データベースに似ています。一方、データを複数のサーバーに移動するだけで、各サーバーが合計接続接続 /数のサーバー数を処理できるようにするDynamoDBのスループットを増やすことができます。見てください 彼らのFAQで 最大スループットを達成する方法についての説明については、

Q:プロビジョニングされたスループットのレベルを常に達成することができますか?

Amazon Dynamodbは、すべてのプライマリキーで比較的ランダムアクセスパターンを想定しています。リクエストがプライマリキーを越えてトラフィックをかなり均等に配布できるように、データモデルを設定する必要があります。非常に不均一または歪んだアクセスパターンがある場合、プロビジョニングされたスループットのレベルを達成できない場合があります。

データを保存するとき、Amazon DynamoDBはテーブルを複数のパーティションに分割し、プライマリキーのハッシュキー要素に基づいてデータを配布します。テーブルに関連付けられたプロビジョニング付きスループットもパーティションに分かれています。各パーティションのスループットは、割り当てられた割り当てに基づいて独立して管理されます。パーティション全体でプロビジョニングされたスループットの共有はありません。その結果、Amazon DynamoDBのテーブルは、ワークロードがハッシュキー値全体にかなり均一に広がっている場合、プロビジョニングされたスループットレベルを満たすことができます。ハッシュキー値全体にリクエストを配布すると、パーティション全体にリクエストが分配され、完全なプロビジットスループットレベルを達成できます。

プライマリキー全体に不均一なワークロードパターンがあり、プロビジョニングされたスループットレベルを達成できない場合、プロビジョニングされたスループットレベルをさらに増やすことでスループットのニーズを満たすことができ、各パーティションにより多くのスループットが得られます。ただし、プライマリキー全体で比較的ランダムなアクセスパターンを実現するために、要求パターンまたはデータモデルの変更を検討することをお勧めします。

これは、1つのサーバーでライブする必要があるため、直接インクリメントされるキーを1つ持つことはスケーリングされないことを意味します。この問題を処理する他の方法があります。たとえば、メモリの集約では、DynamoDBへのフラッシュ増分(信頼性の問題があります)または複数のキーに増分が広がり、シャード内のすべてのキーを引いて読み戻すシャードカウンターがあります。カウンター (http://whynosql.com/scaling-distributed-counters/).

他のヒント

Scalabilityに関するGIGQの回答に加えて、Dynamodbs原子増分は等量ではなく、したがって信頼性がありません。 UpdateItem ADD リクエスト、追加がコミットされたかどうかを知る方法がないので、再試行すべきかどうかはわかりません。

dynamodB条件アップデートは、エラーがない場合でも、属性の2つの変更が同時に試行されるたびに再試行する必要があるため、システムのスケーラブルをさらに低下させるために、これを修正します。

あなたが単一のダイナモdbキーを書くつもりなら、あなたは苦しむでしょう ホットパーティション 問題。ホットパーティションの問題は、インデックスごとに約300 TPSを開始します。したがって、表に5つのインデックスがある場合、約300/5〜60 TPSのホットパーティションの問題が表示される場合があります。

それ以外の場合、Dynamo DBは、ユースケースに応じて、約10〜40k TPSまでスケーラブルです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top