|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ ー : [ちょうおん] (n) long vowel mark (usually only used in katakana) ・ ロック : [ろっく] 1. (n,vs) (1) lock 2. (2) rock 3. (P), (n,vs) (1) lock/(2) rock
ツーフェーズロック (Two-Phase Locking) あるいは2相ロッキングとは、並列処理システム(特にデータベース管理システム (DBMS) や関係データベース)で使用されるロック手法である。ツーフェーズロックは以下のように分類される。 * Strict 2PL: 厳密な (Strict) ツーフェーズロック * 2PL: 厳密でない (Non-Strict) ツーフェーズロック * C2PL: 保守的な (Conservative) ツーフェーズロック 単にツーフェーズロック (2PL) といった場合、厳密でない (Non-strict) ツーフェーズロックを指す。以下ではこれらについて解説する。 == 厳密な (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 は、コミットされていないデータをリードすること、コミットされていないデータを更新すること、リードとライトの衝突などを防ぐ。従ってカスケーディングロールバック(トランザクションの中断によって発生するロールバックが複数のトランザクションを巻き込んでしまう現象)も防ぐことができる。というのもライト操作を防ぐ排他ロックをトランザクションをコミットするまでかけているからである。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「ツーフェーズロック」の詳細全文を読む スポンサード リンク
|