Conservative two-phase locking とは

コンピュータ科学では、控えめな2フェーズロック(C2PL)は、DBMSおよびリレーショナルデータベースで使用されるロック方法です。
保守的な2PLはデッドロックを防ぎます。
2PLとC2PLの違いは、C2PLのトランザクションが、トランザクションが開始する前に必要なすべてのロックを取得することです。これは、すでにいくつかのロックを保持しているトランザクションが、他のロックの待機をブロックしないようにするためです。
重いロックの競合では、C2PLは、ロックを保持するトランザクションが決してブロックされないため、2PLおよびStrict 2PLに対して、ロックが平均で保持される時間を短縮します。
軽いロックの競合では、C2PLは必要以上にロックを保持します。なぜなら、将来どのようなロックが必要になるかを知ることが難しく、オーバーヘッドが高くなるからです。
また、トランザクションは、最初の要求で必要なすべてのロックを取得できない場合でも、ロックを取得しません。さらに、各トランザクションは、その読み取りおよび書き込みセット(トランザクション中に読み書きされるデータ項目)を宣言する必要がありますが、これは必ずしも可能ではありません。これらの制限のために、C2PLはあまり頻繁には使用されません。