토픽 46 / 201·무결성 및 트랜잭션
2PL (Two-Phase Locking)
2PL (Two-Phase Locking)
트랜잭션의 잠금 획득(Growing)과 잠금 해제(Shrinking)를 두 단계로 엄격히 분리하여 직렬가능성(Serializability)을 보장하는 잠금 프로토콜
특징: 직렬 가능성 보장, 교착상태 발생 가능, 모든 잠금 획득 후에만 해제 시작
구성요소
- •확장 단계(Growing Phase): 잠금만 획득, 해제 불가
- •축소 단계(Shrinking Phase): 잠금만 해제, 획득 불가
변형
- •Basic 2PL: 기본 2단계, 연쇄 롤백 가능
- •Strict 2PL: 배타락을 트랜잭션 완료까지 유지, 연쇄 롤백 방지
- •Rigorous 2PL: 모든 잠금을 트랜잭션 완료까지 유지, 가장 엄격
적용사례: RDBMS 동시성 제어 표준 프로토콜
비교: Basic 2PL(유연/연쇄롤백위험) vs Strict 2PL(안전/성능저하) vs Rigorous 2PL(가장안전/동시성최저)
연관: 동시성 제어, 락킹, 직렬 가능성, 교착상태