厳密な (Strict) ツーフェーズロック
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2013/07/08 13:37 UTC 版)
「ツーフェーズロック」の記事における「厳密な (Strict) ツーフェーズロック」の解説
Strict 2PL には以下の2つの原則がある。 トランザクションTがあるオブジェクトをリード/ライトしようとしたとき、そのオブジェクトに共有/排他ロックを使用しなければならない。 トランザクションTがかけた全ての排他ロックはTがコミットする際に解放される(コミット前ではない)。 以下に2つの相互に影響する処理での Strict 2PL の例を示す。 テキストで表すと、次のようになる。 T1: S(A), R(A); T2: S(A), R(A), X(B), R(B), W(B), Commit; T1: X(C), R(C), W(C), Commit ここで S(O) は、オブジェクトO への共有(Shared)ロック操作 X(O) は、オブジェクトO への排他(eXclusive)ロック操作 R(O) は、オブジェクトO へのリード(Read)操作 W(O) は、オブジェクトO へのライト(Write)操作 Strict 2PL は、コミットされていないデータをリードすること、コミットされていないデータを更新すること、リードとライトの衝突などを防ぐ。従ってカスケーディングロールバック(トランザクションの中断によって発生するロールバックが複数のトランザクションを巻き込んでしまう現象)も防ぐことができる。というのもライト操作を防ぐ排他ロックをトランザクションをコミットするまでかけているからである。
※この「厳密な (Strict) ツーフェーズロック」の解説は、「ツーフェーズロック」の解説の一部です。
「厳密な (Strict) ツーフェーズロック」を含む「ツーフェーズロック」の記事については、「ツーフェーズロック」の概要を参照ください。
- 厳密な ツーフェーズロックのページへのリンク