
DynamoDBとは
AWSのマネジメントサービスの1つである、NoSQLデータベースです。
結果整合性とは
DynamoDBはデータを3つのAZに分散して保存しており、ユーザーがデータを更新した場合3つのAZのうち2つのAZへの書き込みが終了した時点で応答を返す仕様のことである。通常は残りの1つのAZも1秒以内にはデータが更新される。
結果整合性が採用されている理由
調査中。
結果整合性による不都合
例えば、データの更新をおこなってからすぐ(1秒以内)に更新データの読み取りを行う場合、更新が反映されていないAZのデータを読み込んでしまう可能性がある。
対策
- 強力な整合性オプションをオンにする
これによって、必ず3つのAZのデータが更新されてから応答を受け取ることが可能となる。
キャパシティユニットは2倍となり、それにともない料金も上がる。 - 処理間に待ち時間を入れる
応答を受け取ってから次の処理を行うまでに待ち時間(1秒程度)を入れることによってすべてのAZのデータが更新されてから処理することが可能となる。