無限ノック › SOA 練習問題一覧 › 問題
SOA信頼性とビジネス継続性

ある企業は DynamoDB グローバルテーブルを us-east-1 と ap-southeast-1 の 2 リージョンで使用しています。ネットワーク遅延により、両リージョンから同一のプライマリキーを持つアイテムに対してほぼ同時に書き込みが発生しました。DynamoDB グローバルテーブルはこの書き込み競合をどのように解決しますか?

A
最初に受け付けた書き込みを正として採用し(First Writer Wins)、後から届いた書き込みを拒否することでデータ整合性を確保する
First Writer Wins方式はDynamoDBグローバルテーブルのサポートしない競合解決戦略です。Last Writer Winsが標準的な実装です。
B
最後に書き込まれたデータを正として採用する(Last Writer Wins)。自動管理されるタイムスタンプにより最新書き込みが全リージョンに伝播される
✓ 正解
DynamoDBグローバルテーブルはLast Writer Wins方式で競合を解決します。DynamoDBが自動的にタイムスタンプを付与し、最新タイムスタンプの値が全リージョンに伝播されます。この方式が採用されます。
C
競合が検出された場合、両方の書き込みを保留してアプリケーションに競合解決ロジックの実装を要求し、アプリ側でどちらを採用するかを判断させる
競合検出時にアプリケーションによるカスタム競合解決ロジックの実装はDynamoDBグローバルテーブルではサポートされていません。
D
競合が発生したトランザクションをロールバックして書き込みを破棄し、ConditionalCheckFailedException をスローする
競合発生時にトランザクションをロールバックするのではなく、Last Writer Wins方式で一つの値が勝者として決定されます。ConditionalCheckFailedExceptionは発生しません。

解説

選択肢Bが正解です。DynamoDB グローバルテーブルは Last Writer Wins 方式で競合を解決します。各書き込みに DynamoDB が自動的にタイムスタンプを付与し、最新タイムスタンプを持つ書き込みが「勝者」として全リージョンに伝播されます。カスタム競合解決ロジックはサポートされていません。このため、同一アイテムへの頻繁な同時書き込みが想定されるユースケースでは、書き込みリージョンをアイテムごとに分離するなどの設計上の工夫が推奨されます。 選択肢Aの First Writer Wins 方式は DynamoDB グローバルテーブルでは採用されておらず、後着きの書き込みを拒否する仕組みはありません。 選択肢Cのような競合をアプリケーションに通知して解決を委ねる仕組みは、DynamoDB グローバルテーブルには実装されていません。カスタム競合解決ロジックは利用できないため、この選択肢は誤りです。 選択肢Dの ConditionalCheckFailedException は、DynamoDB の Condition Expression を用いた条件付き書き込みが失敗した場合に返されるエラーであり、グローバルテーブルの競合解決とは無関係です。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでSOAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← SOA の問題一覧に戻る