SWExpert 2022. 10. 25. 21:57

I. 동시성제어

-. 다중 사용자 환경 데이터베이스 시스템에서 여러 트랜잭션이 동시에 실행될 수 있도록 지원하는 기능

-. 트랜잭션이 동시에 실행될 때 일관성이 유지되도록 병행 트랜잭션 간의 상호작용을 제어하는 DBMS 기능

-. 목적: 갱신손실, 현황파악 오류, 모순성, 연쇄복귀 등 4가지 문제 해결

 

II. 동시성 제어 기법

가. 동시성 제어기법 분류

나. 동시성 제어기법

구분 제어기법 설명
낙관적 낙관적 검증기법

트랜잭션 수행 동안 트랜잭션을 위해 유지되는 데이터 항목들의 지역 사본에 대해서만 갱신이 이루어짐
트랜잭션 종료 시 동시성을 위한 트랜잭션 직렬화가 검증되면 일시에 DB에 반영함
비관적 Locking 



트랜잭션이 사용하는 자원에 대하여 상호 배제 기능을 제공하는 기법
공유 lock : 다른 트랜잭션도 읽기 실행 가능
전용 lock : 다른 트랜잭션은 읽기, 기록 모두 불가
2PL


확장단계 : 트랜잭션은 오직 lock만 수행 가능

수축단계 : 트랜잭션은 오직 unlock만 수행 가능
Timestamp


시스템 시계 : 시스템 시간을 타임스탬프 값으로 부여
논리적 계수기 : 트랜잭션 발생시마다 카운터를 하나씩 증가시켜 타임스탬프로 부여
MVCC



트랜잭션이 한 데이터에 접근하려 할 때, 그 트랜잭션의 타임스탬프와 접근하려는 데이터의 여러 버전의 타임스탬프를 비교하여, 현재 실행하고 있는 스케줄의 직렬 가능성이 보장되는 버전을 선택하여 접근하도록 하는 기법

 

 

III. 동시성 제어기법 장단점

기법 장점 단점
Locking(2PL)
  • 데이터 오류 가능성 사전 예방
  • 간단한 알고리즘
  • Lock 대기시간 발생
  • Deadlock 발생
Timestamp
  • Deadlock 발생 없음
  • 트랜잭션 대기 시간 없음
  • Rollback 발생 확률이 높음
  • Cascading Rollback 가능성
낙관적 검증
  • 동시 처리 능력 증가
  • 트랜잭션 대기 시간 없음
  • 장기 트랜잭션 철회 시, 자원 낭비