IT用語帳
PD-Sデータベース · トランザクション処理

2相ロッキングプロトコル

Two-Phase Locking Protocol

にそうろっきんぐぷろとこる

各トランザクションが、ロックを獲得するだけのロック拡張相と、解放するだけのロック縮小相の2つに分けてロックを扱う規約。一度ロックを解放したら、新たなロックは獲得しない。すべてのトランザクションが従えば直列化可能性が保証されるがデッドロックは防げず、ロックをコミットまで保持する厳格な2相ロッキングにすると、未確定のデータを読んだことによる連鎖的なロールバックも防げる。

共有:

Related

他の資格での定義

Past Exams

過去問での出題

過去問で 5 回出題(データベーススペシャリスト試験 2・基本情報技術者試験 1・応用情報技術者試験 1・ITサービスマネージャ試験 1)

出典: 独立行政法人情報処理推進機構(IPA)の過去問題。問題文は IPA のサイトの PDF で確認できます。「選択肢」は、問題文ではなく選択肢に出たものです。用語名で照合しているため、関係の薄い問題が含まれることがあります。

Related

関連キーワードの用語

DBロック

トランザクションがデータにアクセスする前に、他のトランザクションのアクセスを制限するための仕組み。共有ロック(読取り用)と占有ロック(更新用)がある。

DB楽観的制御方式(楽観的ロック)

トランザクション実行中はロックを取得せず、コミット前に競合が発生していないか検証する方式。読取り→検証→書込みの3フェーズで処理する。競合が少ない環境で高いスループットを実現する。

DBデッドロック

2つ以上のトランザクションが互いに相手のロック解放を待ち合い、処理が永久に進まなくなる状態。待ちグラフによる検出や、タイムアウトによる検出を行い、一方のトランザクションをアボートして解消する。

DBタイムアウト

ロック待ちの最大許容時間。指定時間内にロックが取得できない場合、トランザクションをエラーとして中断する仕組み。デッドロックの間接的な検出手段としても機能する。待ちグラフによる検出より実装が簡単だが、正常な待ちも中断する可能性がある。

DB共有ロック

データの読取り時に取得するロック。同一データに対して複数のトランザクションが同時に共有ロックを取得でき、他の共有ロックとは共存するが、占有ロックとは排他的である。

DB専有ロック

データの更新(INSERT、UPDATE、DELETE)時に取得するロック。同一データに対して他のいかなるロック(共有・占有)とも排他的であり、ロックを取得したトランザクションのみがアクセスできる。