DynamoDBに関する基本的な内容をまとめてみたものです。DynamoDBに関する、Web上にすでにある良識な解説コンテンツをまとめたサイトの抜粋です。
[DynamoDBの整合性モデル] (https://www.techcrowd.jp/dynamodb/consistency/)
[DynamoDBの整合性モデルの特徴] (https://www.techcrowd.jp/dynamodb/consistency/)
Amazon DynamoDB からデータを読み込むとき、ユーザーはその読み込みに対して結果的に整合性のある読み込みを設定するか強い整合性を設定するかを指定できます。
結果的に整合性のある読み込み (デフォルト) – 結果整合性のあるオプションを選択すると、読み込みスループットが最大限に向上します。ただし、結果的に整合性のある読み込みには、最新の書き込み結果が反映されない可能性があります。データの全コピーの整合は通常 1 秒以内に行われます。短時間後に読み込みを繰り返すことによって、更新されたデータが返されます。
強い整合性の読み込み – Amazon DynamoDB には結果整合性のある読み込みに加えて、強い整合性のある読み込みをリクエストするための、柔軟性と制御が用意されています。強い整合性のある読み込みの結果には、読み込みの前に適切な応答を受け取ったすべての書き込みが反映されています。
[高可用性-3xレプリケーション] (https://www.techcrowd.jp/dynamodb/consistency/)
DynamoDBは、高い可用性を備えた実績のある Amazon のデータセンターで実行されます。このサービスでは、データが同じ AWS リージョン内の 3 つの施設間でレプリケートされるので、サーバー障害の発生やアベイラビリティーゾーンの停止に対する耐障害性が高まります。
DynamoDB クロスリージョンレプリケーションを使用すると、DynamoDB テーブル(マスターテーブル)の同一コピー(レプリカ)を複数の AWS リージョンに保持できます。テーブルのクロスリージョンレプリケーションを有効にすると、そのテーブルの同一コピーが別の AWS リージョンに作成されます。そのテーブルに対する書き込みは、すべてのレプリカに自動的に反映されます。
効率的な災害対策手段となります。
[DynamoDBの整合性モデル] (https://www.techcrowd.jp/dynamodb/consistency/)
DynamoDBは2箇所を書き込んだ時点で「書き込みOK」という返答をします。残り1箇所は「そのうち時間が経てば(DynamoDBの場合は1秒以内)結果的に書き込まれる」という考え方です。これを「結果整合性」と言います。読み取り時には3箇所に書き込まれているデータのどこから読み取るかはわからないので書き込まれていないデータからは読み取れないことになりますし、更新前のデータからは古いデータが読み取れてしまいます。
ConsistentReadオプション(読み取り一貫性)とはこのような読み取りによる差がないことを保証するもので、スキャン時にこのオプションをつけることでスキャン前に登録、変更された値は確実に読み取る事ができます。具体的には書き込まれている3箇所より2箇所の値を読み取り、一致すればその値を、一致しなければもう1箇所の値を読んで2箇所に書き込まれている値を返す、という仕組みになります。