トランザクションの並行実行で直列可能性を保証する、2相ロッキングプロトコルの説明として適切なものはどれか。
選択肢をタップすると、その場で答え合わせできます
正解と解説を見る
正解 Dロックを1つでも解除した後は、新たなロックを獲得しない
解説
正解は「ロックを1つでも解除した後は、新たなロックを獲得しない」です。2相ロッキングでは、各トランザクションの実行を、ロックを獲得するだけの成長相と、解除するだけの縮退相の2つに分けます。すべてのトランザクションがこれを守ると、並行実行の結果が、ある順序で1つずつ実行した場合と同じになる(直列可能である)ことが保証されます。ただし、デッドロックは防げません。「ロックを獲得する前に、必ず…解除する」は、2相の定義と無関係です。「すべてのトランザクションが、データベース全体を一度にロックする」と、同時実行性が失われます。「ロックは2つまでしか同時に保持できない」は、2相の意味を取り違えています。
- #トランザクション
- #2相ロッキング
この調子でOS・ネットワーク・データベースを続けて解く
▶ この科目の連続演習へ進む(10問)