IPA公式正解:イ データに対してのロックは行わずに,更新対象のデータが他のトランザクションと競合がなかったことを確認してからコミットを行う。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【イ】です。楽観的同時実行制御法(Optimistic Concurrency Control)は、トランザクション実行中の競合は稀であると仮定し、ロックを掛けずに処理を進め、コミット時に他トランザクションとの衝突(競合)を検証(バリデーション)して問題がなければコミットする方式です。
【詳細解説】■ 本問の核心・解法のポイント
同時実行制御の手法の1つである「楽観的制御法(楽観的排他制御)」の特徴を把握しているかを問う問題です。
悲観的制御法(ロック方式など)は競合が頻繁に起きることを前提に最初からロックを獲得して他をブロックしますが、楽観的制御法は競合が少ない環境を前提とします。処理中はロックを取得せず自由に読み書きを行い、更新確定時(コミット時)にタイムスタンプやバージョン番号を用いて他トランザクションによる更新と競合していないかを検証します。競合が検知された場合はロールバックして再試行します。
・各選択肢の徹底解説:
・ア:デッドロックを防ぐためにリソースに順序を付けて順番にロックを獲得する手法(順序付けロック)の説明です。
・イ:【選択肢イ★】処理中はロックを行わず、コミット時に競合の有無を検証して完了させる手法であり、楽観的制御法の正しい説明です。
・ウ:分散トランザクションで原子性を担保する「2相コミット(2PC)」の説明です。
・エ:直列化可能性を保証するためのロックプロトコルである「2相ロック(2PL)」の説明です。
よって正解はイです。