3. 자료처리/데이터모델링
동시성제어
SWExpert
2022. 10. 25. 21:57
I. 동시성제어
-. 다중 사용자 환경 데이터베이스 시스템에서 여러 트랜잭션이 동시에 실행될 수 있도록 지원하는 기능
-. 트랜잭션이 동시에 실행될 때 일관성이 유지되도록 병행 트랜잭션 간의 상호작용을 제어하는 DBMS 기능
-. 목적: 갱신손실, 현황파악 오류, 모순성, 연쇄복귀 등 4가지 문제 해결
II. 동시성 제어 기법
가. 동시성 제어기법 분류
나. 동시성 제어기법
구분 | 제어기법 | 설명 |
낙관적 | 낙관적 검증기법 | ![]() 트랜잭션 수행 동안 트랜잭션을 위해 유지되는 데이터 항목들의 지역 사본에 대해서만 갱신이 이루어짐 트랜잭션 종료 시 동시성을 위한 트랜잭션 직렬화가 검증되면 일시에 DB에 반영함 |
비관적 | Locking | ![]() 트랜잭션이 사용하는 자원에 대하여 상호 배제 기능을 제공하는 기법 공유 lock : 다른 트랜잭션도 읽기 실행 가능 전용 lock : 다른 트랜잭션은 읽기, 기록 모두 불가 |
2PL | ![]() 확장단계 : 트랜잭션은 오직 lock만 수행 가능 수축단계 : 트랜잭션은 오직 unlock만 수행 가능 |
|
Timestamp | ![]() 시스템 시계 : 시스템 시간을 타임스탬프 값으로 부여 논리적 계수기 : 트랜잭션 발생시마다 카운터를 하나씩 증가시켜 타임스탬프로 부여 |
|
MVCC | ![]() 트랜잭션이 한 데이터에 접근하려 할 때, 그 트랜잭션의 타임스탬프와 접근하려는 데이터의 여러 버전의 타임스탬프를 비교하여, 현재 실행하고 있는 스케줄의 직렬 가능성이 보장되는 버전을 선택하여 접근하도록 하는 기법 |
III. 동시성 제어기법 장단점
기법 | 장점 | 단점 |
Locking(2PL) |
|
|
Timestamp |
|
|
낙관적 검증 |
|
|