5. 데이터베이스의 병행제어(Concurrency Control)에 대하여 다음을 설명하시오.

가. 병행제어의 정의

나. 병행제어 기법의 종류

다. 병행제어의 문제점

 

 

1. 병행제어의 정의

 1) 병행제어의 정의

데이터 일관성 및 무결성 보장

   - 트랜잭션이 동시에 수행될 때, 일관성을 해치지 않도록 병행 트랜잭션 간의 상호작용을 제어하는 DBMS의 기능

 

 2) 병행제어 미처리시 문제점

구분 현상  설명
갱신 손실
(Lost Update)
- 트랜잭션들이 동일 데이터를 동시에 갱신할 경우 발생
현황파악오류
(Dirty Read)
-ㅠ트랜잭션의 중간 수행결과를 다른 트랜잭션이 참조함으로써 발생하는 오류
모순성
(Inconsistency)
- 두 트랜잭션이 동시에 실행할 때 DB가 일관성이 없는 상태로 남는 문제

연쇄복귀
(Cascading Rollback)
- 복수의 트랜잭션이 데이터 공유시 특정 트랜잭션이 처리를 취소할 경우 다른 트랜잭션이 처리한 부분에 대해 취소 불가능

 - 경신손실, 현황파악오류, 모순, 연쇄복귀 발생으로 병행제어 필요

 

2. 병행제어 기법의 종류

 1) 병행제어 기법 종류

낙관적 비관적 유형으로 구분

 2) 병행제어 기법 설명

기법 개념도 작동방식
Locking 기법
-트랜잭션이 사용하는 자원에 대하여 상호 배제 기능을 제공하는 기법
-공유 lock : 다른 트랜잭션도 읽기 실행 가능
-전용 lock : 다른 트랜잭션은 읽기, 기록 모두 불가
2PL
(2 Phase Locking)
-확장단계 : 트랜잭션은 오직 lock만 수행 가능
-수축단계 : 트랜잭션은 오직 unlock만 수행 가능
Timestamp Ordering
-시스템 시계 : 시스템 시간을 타임스탬프 값으로 부여
-논리적 계수기 : 트랜잭션 발생시마다 카운터를 하나씩 증가시켜 타임스탬프로 부여
낙관적 검증기법
-트랜잭션 수행 동안 트랜잭션을 위해 유지되는 데이터 항목들의 지역 사본에 대해서만 갱신이 이루어짐
-트랜잭션 종료 시 동시성을 위한 트랜잭션 직렬화가 검증되면 일시에 DB에 반영함
다중버전 동시성 제어
(MVCC)
트랜잭션이 한 데이터에 접근하려 할 때, 그 트랜잭션의 타임스탬프와 접근하려는 데이터의 여러 버전의 타임스탬프를 비교하여, 현재 실행하고 있는 스케줄의 직렬 가능성이 보장되는 버전을 선택하여 접근하도록 하는 기법

 

3. 병행제어의 문제점

 1) 병행제어의 분류

병행제어시 발생하는 문제

   - 락킹과 해제 과정, 타임스탬프 부여에 따라 데드락, 롤백, 자원낭비등의 문제가 발생

 

 2) 병행제어 문제점

기법 문제점 설명
Locking(2PL) Deadlock 발생 - 락킹과 해제과정 중 서로 교착상태 조건 충족시 서로 대기하는 상태 발생
Timestamp 롤백 - 타임스탬프 비교에 따른 롤백 
낙관적 검증 자원낭비 - 트랜잭션 마지막 단계에서 기록하는 낙관적 검증 기법은 자원낭비 문제 발생
MVCC 롤백 - 충돌문제는 대기가 아니라 복귀처리 함으로 연쇄 복귀초래 발생 가능성

 - 문제점에 따라 선택적인 기법 적용

 

4. 병행제어시 발생 문제 해결

- 타임스탬프 적용시 wait-die, wound-wait 적용

+ Recent posts