保守的なツーフェーズロック (C2PL)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2013/07/08 13:37 UTC 版)
「ツーフェーズロック」の記事における「保守的なツーフェーズロック (C2PL)」の解説
保守的な2PL (C2PL) はデッドロックを防ぐ。 2PLとC2PLの違いは、C2PLがトランザクション開始前に必要な全ロックを獲得するという点にある。これによりトランザクションの途中でロックを獲得しようとしてデッドロックとなることがなくなる。 ロックの衝突が激しい状況では、C2PLでのトランザクションは途中でブロックされないので、2PL や Strict 2PL に比較して平均ロック獲得期間を減らすことができる。 ロックの衝突が少ない状況では、C2PLは必要以上にロックを獲得するため、オーバヘッドが高くなる。 また、トランザクションは必要とされるロックが全て獲得できるまでいかなるロックも獲得しないし、処理も開始できない。さらに、トランザクション毎にリード/ライトするデータを全て宣言する必要があり、これは必ずしも常に可能とは言えない。このような制限があるため、C2PL はあまり使われていない。
※この「保守的なツーフェーズロック (C2PL)」の解説は、「ツーフェーズロック」の解説の一部です。
「保守的なツーフェーズロック (C2PL)」を含む「ツーフェーズロック」の記事については、「ツーフェーズロック」の概要を参照ください。
- 保守的なツーフェーズロックのページへのリンク