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 구현분야의 요소기술)

반응형

+ Recent posts