보수적인 2상 잠금
Conservative two-phase locking
컴퓨터 과학에서 보수적인 2상 잠금(C2PL)은 DBMS 및 관계형 데이터베이스에서 사용되는 잠금 방법입니다.
보수적인 2PL은 교착 상태를 방지합니다.
2PL과 C2PL의 차이점은 C2PL 트랜잭션이 트랜잭션을 시작하기 전에 필요한 모든 잠금을 얻는다는 것입니다.이는 이미 일부 잠금을 보유하고 있는 트랜잭션이 다른 잠금을 기다리는 것을 차단하지 않도록 하기 위함입니다.
헤비록 컨텐션에서는 잠금을 유지하는 트랜잭션은 차단되지 않으므로 C2PL은 2PL 및 Strict 2PL에 비해 평균 잠금 유지 시간을 단축합니다.
Light Lock 컨텐션에서는 C2PL은 향후 어떤 잠금이 필요한지 판단하기 어렵기 때문에 필요 이상으로 많은 잠금이 유지되므로 오버헤드가 높아집니다.
또한 트랜잭션은 첫 번째 요청에서 필요한 모든 잠금을 얻지 못할 경우 잠금도 얻지 못합니다.또한 각 트랜잭션은 읽기 및 쓰기 세트(트랜잭션 중에 읽고 쓰는 데이터 항목)를 선언해야 하는데, 이는 항상 가능한 것은 아닙니다.이러한 제한 때문에 C2PL은 그다지 자주 사용되지 않습니다.
