データベース比較問題
データベースの「楽観的ロック」と「悲観的ロック」の違いとして、最も適切なものはどれか。
A.楽観的ロックはデータ更新時に常にロックを取得し、悲観的ロックは更新完了後にロックを解放する。
✗ 楽観的ロックはデータ読取り時にロックを取得しない点が特徴です。説明が悲観的ロックの内容と混在しています。
B.楽観的ロックはデータ読取り時にロックをかけず更新時に競合を検出する方式で、悲観的ロックは読取り時からロックをかけて競合を防ぐ方式である。← 正解
✓ 正解です。楽観的ロックは競合が少ない前提でロックせずに処理し更新時に整合性を確認します。悲観的ロックは競合を防ぐため読取り段階からロックします。
C.楽観的ロックはデッドロックが発生しやすく、悲観的ロックはデッドロックが発生しない。
✗ デッドロックが発生しやすいのは悲観的ロックです。楽観的ロックはロックしないためデッドロックは発生しません。
D.悲観的ロックは更新時に競合が発生した場合にリトライを行い、楽観的ロックは競合を事前に防止する。
✗ リトライを行うのは楽観的ロックです。悲観的ロックは事前にロックして競合を防ぐ方式です。