본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Two-Phase Locking Protocol

Lock과 Unlock이 동시에 이루어지면 일관성이 보장되지 않으므로 Lock만 가능한 단계와 Unlock만 가능한 단계를 구분하는 병행 제어 기법

  • 직렬가능성을 보장한다.
  • 교착상태가 발생할 수 있다.

Growing Phase
  • 새로운 Lock은 가능하고 Unlock은 불가능한 단계
Shrinking Phase
  • Unlock 은 가능하고 새로운 Lock은 불가능한 단계
Lock Point
  • 트랜잭션이 마지막 로크를 얻은 시점, 곧 확장 단계가 끝나고 축소 단계가 시작되는 경계이다
  • 트랜잭션이 가진 로크 수가 가장 많은 꼭대기 지점이다. 그래프로 그리면 로크 요청으로 계단처럼 오르다가 첫 로크 해제 직전에 정점에 이른다
  • 2단계 로킹을 지킨 스케줄은 로크 포인트 순서대로 트랜잭션을 늘어놓은 직렬 스케줄과 동등하다. 직렬 가능성 증명이 이 점에 기댄다[1]
  • 시작 직후 첫 로크를 얻은 시점이나 첫 로크를 해제한 뒤의 시점은 로크 포인트가 아니다
규약 내용 효과
기본 2단계 로킹 확장 단계 뒤에 축소 단계 직렬 가능성 보장. 교착상태·연쇄 복귀 가능
엄격한(strict) 2단계 로킹 배타 로크를 커밋·철회 때까지 쥔다 연쇄 복귀 방지
엄밀한(rigorous) 2단계 로킹 모든 로크를 커밋·철회 때까지 쥔다 커밋 순서가 직렬화 순서
보수적(conservative) 2단계 로킹 시작 전에 필요한 로크를 모두 얻는다 교착상태 방지
  1. ↑ Silberschatz, Korth, Sudarshan, 「Database System Concepts 7th Edition - Chapter 18: Concurrency Control」 강의 슬라이드, https://www.db-book.com/slides-dir/PDF-dir/ch18.pdf, 확인일: 2026-11-04.