読み込み整合性 - Amazon DynamoDB

読み込み整合性

Amazon DynamoDB は、世界中の複数の AWS リージョンで利用できます。各リージョンは独立していて、他の AWS リージョンから分離されています。例えば、us-east-2 リージョンの People という名前のテーブルと us-west-2 リージョンの People という名前のテーブルがある場合、これらは完全に 2 つの個別のテーブルと見なされます。DynamoDB が利用可能なすべての AWS リージョンの一覧については、「Amazon Web Services 全般のリファレンス」の「AWS リージョンとエンドポイント」をご覧ください。

各 AWS リージョンは、複数のそれぞれ独立した場所で構成されており、これらの場所はアベイラビリティーゾーンと呼ばれます。各アベイラビリティーゾーンは、他のアベイラビリティーゾーンにおける障害の影響は受けず、同じリージョン内の他のアベイラビリティーゾーンに対して、低コスト、低レイテンシーでネットワーク接続できます。これにより、リージョンの複数のアベイラビリティーゾーン間でデータの迅速なレプリケーションが可能になります。

アプリケーションが DynamoDB テーブルにデータを書き込み、HTTP 200 応答 (OK) を受け取ると、書き込みが開始され、継続します。データの書き込みは、すべてのアベイラビリティーゾーンで結果的に整合性があり、通常は 1 秒以内に行われます。

DynamoDB は結果整合性強力な整合性のある読み込みをサポートします。

結果整合性のある読み込み

DynamoDB テーブルからの読み込みオペレーションの応答には、最近の書き込みオペレーションの結果が反映されていないことがあります。応答には古いデータが含まれる場合があります。少し時間がたってから読み込みリクエストを繰り返すと、応答で最新のデータが返されます。

強力な整合性のある読み込み

強力な整合性のある読み込みをリクエストすると、DynamoDB は成功した以前のすべての書き込みオペレーションからの更新が反映された最新データの応答を返します。ただし、この整合性には以下のような欠点があります。

  • グローバルセカンダリインデックス (GSI) では、強力な整合性のある読み込みはサポートされていません。

  • 強力な整合性のある読み込みでは、結果整合性のある読み込みよりも多くのスループット容量が使用されます。強力な整合性のある読み込みは、ネットワークの遅延または停止があった場合に、DynamoDB はサーバーエラー (HTTP 500) を返す場合があります。詳細については、「読み取り/書き込みキャパシティモード」を参照してください。

  • 最初の試行で読み取りリクエストがリーダーノードに到達しない場合、強力な整合性のある読み込みの待ち時間が長くなる可能性があります。

注記

DynamoDB は、特に指定がない限り、結果的に整合性のある読み込みを使用します。読み込みオペレーション (GetItemQueryScan) には、ConsistentRead パラメータがあります。このパラメータを true に設定すると、DynamoDB はオペレーション時に強い整合性のある読み込みを使用します。