상 | 2PL or 2PLP | 2PL(Two Phase Locking) 기법(Protocol), 변형으로, 정적(Static) 2PL, 엄격한(Strict) 2PL, 엄중한(Rigorous) 2PL 등이 있음 |
토픽 이름(상) | 2PL(2 Phase Locking) |
분류 | DB > 동시성제어 > 2PL or 2PLP |
키워드(암기) | Lock(Read lock, write lock, X-lock,S-lock) 2PL(lock,unlock,Strict/Rigorous/Static 2PL), Validation(read-validation-execution, finish to start, start to start) Timestamp ordering(system계수기, 논리개수기, wait-die, wound-wait) MVCC(Undo영역, CR-copy, Rollback segment, Snapshot too old, 오라클-세그먼트, MS-temp DB, 문장수준MVCC, 트랜잭션수준 MVCC) |
암기법(해당경우) | 확수 |
기출문제
번호 | 문제 | 회차 |
1 | 데이터베이스 동시성 제어기법인 2PL(2 Phase Locking), Timestamp Ordering, 낙관적 검증기법을 비교 설명하시오 | 2014.01.합숙공통.2일차 |
2 | 2PL에 대해서 Strict, Rigorous, Static로 구분하여 설명하시오. | 2012.08.합숙공통.5일차 |
3 | 6. 데이터베이스 트랙잭션 동시성 제어를 위한 2PL(2 Phase Locking)과 MVCC(Multiversion concurrency control)기법에 대하여 설명하시오. | 2018.01.모의관리.3 |
4 | 2. 대이터베이스의 2PC(2-phase commit)와 2PL(2-phase locking)에 대해 비교 설명하시오. | 2016.10.모의관리.1 |
5 | 2PL을 설명하고 Strict, Rigorous, Static으로 비교 설명하시오. | 2014.01.모의관리.1 |
6 | 2PL을 설명하고 Strict, Rigorous, Static으로 비교 설명하시오. | 2013.01.모의응용.1 |
7 | 트랜잭션들이 모두 로킹(locking)규약을 준수하였음에도 병행제어의 모순성이 발생한 예를 제시하고, 트랜잭션 직렬 가능성을 보장할 수 있는 규약으로 2PL(two phase locking protocol)을 설명하시오. | 2010.12.모의관리.4 |
I. 2단계 로킹 기법, 2PL의 개요
가. 2PL 개념
- DB무결성 보장을 위한 동시성제어를 위하여, 모든 트랜잭션들이 Lock과 Unlock연산을 확장단계와 수축단계로 구분하여 수행하는 기법
- 모든 트랜잭션들이 lock 과 unlock 연산을 확장단계와 수축단계로 구분하여 수행함
구분 | 설명 |
확장단계 | 트랜잭션은 lock 만 수행할 수 있고 unlock 은 수행할 수 없는 단계 |
수축단계 | 트랜잭션은 unlock 만 수행할 수 있고 lock 은 수행할 수 없는 단계 |
나. 2 단계 로킹 규약 이론(Two-Phase locking protocol theorem)
- 모든 로킹 연산(read_lock, write_lock) 들이 최초의 unlock 연산보다 앞에 나오는 경우, 그 트랜잭션은 2 단계 로킹 프로토콜을 준수
- 만일 모든 트랜잭션들이 2단계 로킹 규약을 준수한다면, 모든 트랜잭션들은 직렬성을 보장받게 됨
- 그 역은 성립하지 않음, 직렬 가능성을 보장할 수 있는 규약으로 가장 많이 사용 됨
II. 2 단계 로킹의 개념도 및 2 단계 로킹의 이해
가. 2 단계 로킹 개념도

- 확장단계와 수축단계 간 차단단계를 지원하는 2PL 의 개념도
- 확장단계 : 트랜잭션은 lock만 수행할 수 있고 unlock은 수행할 수 없는 단계
- 수축단계 : 트랜잭션은 unlock만 수행할 수 있고 lock은 수행할 수 없는 단계
- 직렬가능성을 보장할 수 있는 규약으로 가장 많이 사용됨
나. 2 단계 로킹 예제

- 하나의 트랜잭션내에서 확장단계를 거치고, 수축단계를 거치면서 lock과 unlock을수행

- 2단계로킹(2PL : 2 Phase Locking) – lock하는 시간이 있고, unlock하는 시간이 있음
- 직렬가능성을 보장할 수 있는 규약으로 가장 많이 사용됨
다. 2 단계 로킹 기법의 문제점 및 피하기 위한 2 단계 로킹 기법
- 교착상태발생 가능성 있음 → 교착상태 예방과 교착상태 탐지로 해결
- 2 단계 로킹 기법의 문제점
- 2 단계 로킹 기법이 deadlocks의 완전한 제거를 나타내지는 못함
- 2 단계 로킹 기법 상태에서 Cascading rollback 이 가능함
- 교착상태 예방과 교착상태 탐지로 해결
III. 기본적인 2 단계 로킹 기법의 문제점을 피하기 위한 로킹기법
종류 | Strict 2PL | Rigorous 2PL | Static 2PL |
내용 | - 2 단계 로킹 - 모든 독점 lock(lock-X)는 그 transaction 이 완료될 때까지 unlock 하지 않음, 그대로 유지 - commits/aborts 가 수행될 때 까지 모든 exclusive locks 을 잡고 있어야 함 |
- 2 단계 로킹 - 모든 lock 는 그 transaction 이 완료될 때까지 unlock 하지 않음 - 트랜잭션은 commits/aborts 가 수행될 때까지 모든 locks 을 잡고 있음 |
- Transaction 수행 전부터 그 transaction 의 읽기 집합과 쓰기 집합을 미리 선언 - Transaction 이 접근하려는 모든 항목들에 lock 을 획득 |
특징 | 연쇄복귀(Cascading rollback)문제 발생하지 않음 deadlock 회피 못함 | Strict 2PLP 모다 더 제한적임 Deadlock 회피 못함 |
- Dead lock 발생하지 않으나 비현실적임 |
IV. 교착상태의 해결방법
해결방법 | 설명 |
교착상태 방지 프로토콜 | - 교착상태 회피를 위한 한 방법으로 각 트랜잭션의 시간 스탬프를 이용하는 방법 |
Wait-die 기법 | - 요청자가 기득권자보다 고참이면, 기득권자가 종료될 때까지 기다림(Wait) - 요청자가 신참이면 죽고(die-rollback) 다시 시작함 |
Wound-wait 기법 | - 요청자가 기득권자보다 고참이면 기득권자를 종료(Wound-rollback)시킴 - 요청자가 신참이면 기득권자가 종료될 때까지 기다림 (Wait) |
- 교착상태 해결방법으로 회피(Avoidance), 예방(prevention), 탐지(Detection), 회복(Rollback) 이 있음.
V. 동시성 보장기법 비교
구분 | 2PL(2 Phase Locking) | Timestamp Ordering | 낙관적검증기법 |
개념도 | |||
작동방식 | 확장단계: 트랜잭션은 오로지 lock만 수행가능 수축단계: 트랜잭션은 오로지 unlock만 수행가능 |
시스템시계: 시스템시간을 타임스탬프 값으로 부여 논리적계수기: 트랜잭션 발생시 마다 카운터를 하나씩 증가시켜 타임스탬프로 부여 |
트랜잭션 수행 동안 트랜잭션을 위해 유지되는 데이터 항목들의 지역 사본에 대해서만 갱신이 이루어짐 트랜잭션 종료시 동시성을 위한 트랜잭션직렬화가 검증되면 일시에 DB에 반영함 |
장점 | 직렬가능성을 보장 위해 가장 많이 사용됨 | 트랜잭션이 결코 기다리는 경우가 없으므로 교착상태(Deadlock)를 방지할 수 있음 | 트랜잭션종료 시 동시성 검증으로 비교적 동작이 단순함 |
단점 | 교착상태발생가능 (Deadlock) 교착상태 예방과 교착상태 탐지로 해결 |
연쇄복귀(Cascading Rollback)를 초래할수 있음 | 트랜잭션이 몰리는 경우 동시성검증으로 인한 성능저하발생가능성 |
응용 | 휴대용 단말용 플래시메모리 2PL | 웹 시스템 OLTP 제어용 | 업무 구분이 명확하여 중복이 없는 트랜잭션 |
VI. 동시성 제어를 위한 과제
가. DBMS 선택 시 충분한 검토필요(Implicit Lock, 자동 Rollback, 지연갱신 등)
나. DBMS 제공 메커니즘 내에서 최고의 성능구현은 개발자, 운용자의책임
(Transaction 단위구성 row<page<table<db, Locking 구사기법, Dead Lock 방지/탐지)
다. DB 구축시 Data 정규화의 수준조절로 성능향상 바람직
(최소한의중복허용, 분석, 설계에서 운용까지 표준화된 절차수립)
라. MMDB, OODB의 출현으로 Transaction의 장기화경향
(최적성능하의 병행성 제어는 DB 구현분야의 요소기술)
'정보관리기술사 > DB_데이터분석' 카테고리의 다른 글
다중 버전 동시성 제어(MVCC) (0) | 2023.08.06 |
---|---|
Timestamp Ordering (0) | 2023.08.05 |
동시성 제어 (0) | 2023.08.03 |
ARIES (Algorithms for Recovery and Isolation Exploiting Semantics) (0) | 2023.08.02 |
그림자페이지(Shadow Paging) 기법 (0) | 2023.08.01 |