Learning
토픽 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(가장안전/동시성최저)

연관: 동시성 제어, 락킹, 직렬 가능성, 교착상태