SMITサービスマネージャ試験 午前Ⅱ

令和5年度春期 ITサービスマネージャ 午前Ⅱ 問23

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

2相ロッキングプロトコルに従うトランザクションで発生する可能性のある現象はどれか。

選択肢

  1. ア
    ダーティリード
  2. イ
    デッドロック
  3. ウ
    ノンリピータブルリード
  4. エ
    ロストアップデート
解き方のヒントを見る

与えられた条件の範囲を確かめる

トランザクションのロック制御を考えるときは、判断の根拠となる条件がどこまで明示されているかに注目しましょう。一般的な印象で補わず、与えられた条件と自分が置いた仮定を分けて整理することが大切です。

この問題で問われていること

この問題では、ある現象について考える際に必要な条件を、勝手に付け加えていないか確かめる視点を持ちましょう。判断の途中で補った前提があれば、それが与えられた情報に基づくものかを一度立ち止まって確認します。

視点

条件の整理では、明示された情報と、理解のために自分で補った仮定を区別します。仮定を置いたことに気付いたら、その根拠を確認し、与えられた条件の範囲に戻って考えましょう。

確認ポイント

  • 判断の根拠としている条件は明示されていますか。
  • 自分で補った仮定を、与えられた条件と混同していませんか。
  • 考えを進める途中で、条件を勝手に付け加えていませんか。
正解と解説を見る

正解

イ

解説

提示された正答はイのデッドロックです。2相ロッキングでもロック待ちの循環は起こり得ます。ただし、基本の方式でダーティリードも必ず防げるとは限らず、その防止には厳格2相ロッキングなどの追加前提が必要です。

理由

2相ロッキングは、ロックを取得・強化する拡張期と、ロックを解放・弱める縮小期に分ける方式です。一度解放した後に新たなロックを取得することはできません。しかし、取得するデータの順序は統一されません。例えば、トランザクションT1がA、T2がBの排他ロックを保持し、T1がB、T2がAを要求すると、双方が相手の解放を待ちます。この循環待ちは両者が拡張期にある場合でも起こるため、イのデッドロックが発生し得ます。

比較

ノンリピータブルリードを防ぐ根拠は、再読するデータの共有ロックを途中で解放すると再取得できないため、再読まで保持する必要があることです。その間、他のトランザクションは排他ロックを取得して更新できません。ロストアップデートも、読取りから更新まで必要なロックを保持し、排他ロックへの変更時に競合を待つことで防ぎます。一方、基本の2相ロッキングでは、縮小期にコミット前の排他ロックを解放でき、ダーティリードが起こる余地があります。確実な防止には、排他ロックをコミット又はロールバックまで保持する厳格2相ロッキングなどが必要です。画像の設問にはこの追加条件が明記されていないため、アが基本の方式でも絶対に発生しないとは断定できません。提示された正答イと、この前提上の注意を区別してください。

選択肢ア

これは不正解だよ。ダーティリードは、他のトランザクションがコミットしていない更新結果を読むことです。本問では不正解ですが、基本の2相ロッキングだけでは、縮小期にコミット前の排他ロックを解放できるため、発生する場合があります。確実に防ぐには、排他ロックをコミット又はロールバックまで保持する厳格2相ロッキングなどの前提が必要です。

選択肢イ(正解)

これは正解だよ。デッドロックは、複数のトランザクションが互いのロック解放を待ち、処理を進められなくなる状態です。例えば、一方がデータAを、他方がデータBをロックし、それぞれ相手のデータのロックを要求すると循環待ちが起こります。2相ロッキングは取得と解放の順序を定めますが、この循環を防ぐ規則ではありません。

選択肢ウ

これは不正解だよ。ノンリピータブルリードは、同じデータを再読したとき、他のトランザクションの更新によって値が変わる現象です。再読するデータの共有ロックを解放すると縮小期に入り、再取得はできません。このため、2相の規則に従って再読するには共有ロックを再読まで保持し、他のトランザクションが途中で更新できないようにします。

選択肢エ

これは不正解だよ。ロストアップデートは、同じデータを読んだ複数のトランザクションが更新し、一方の結果が上書きされて失われる現象です。共有ロックを解放してから排他ロックを取得する手順は、2相の規則に違反します。拡張期に共有ロックを排他ロックへ変更する場合も、他の共有ロックが残る間は待つため、更新結果を失う競合を防げます。

学習のポイント

2相ロッキングによる競合制御と、コミットまでのロック保持による未確定データの保護を区別して学びましょう。

出典:独立行政法人 情報処理推進機構(IPA)令和5年度春期 ITサービスマネージャ試験 午前Ⅱ 問23(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針