토픽 이름 () 다중 버전 동시성 제어(MVCC)
분류 Database > 동시성제어 > 다중 버전 동시성 제어(MVCC)
키워드(암기) 유형 : MultiversionTimestamp Ordering, Multiversion Two-Phase Locking
정책 : Multi-version Read Consistency, Isolation Level
암기법(해당경우)  

 

기출문제

번호 문제 회차
1 다중 비전 동시성 제어(MVCC: Multi Version Concurrency Control) 111관리.90.3
2 12. 타임스탬프 기법과 다중버전 동시성제어(MVCC: Multi Version Concurrency Control)기법을 비교하시오. 합숙_2019.04.3D_관리
3 5. 트랜잭션의 병행 실행 발생 가능한 문제점을 설명하고 그중 다중버전 동시성제어(MVCC: Multi Version Concurrency Control) 기법에 대하여 설명하시오 모의_2019.03_관리_3
  6. 데이터베이스 트랜잭션 동시성 제어를 위한 2PL(2 Phase Locking) MVCC(Multiversion concurrency control)기법에 대하여 설명하시오. 모의_2018.01_관리_3

 

. 데이터 무결성과 트랜잭선 직렬화 가능성 보장, 다중버전 동시성 제어의 정의

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

 

II. 동시성 제어 수행의 개념도(구성도)

구분 설명
UNDO 이용하여 동시성제어 수행
원리 데이터를 변경 할 때마다 그 변경사항을 Undo 영역에 저장해 .
시작시점의 일관성 있는 버전(CR Copy) 생성
데이터를 읽다가 쿼리(또는 트랜잭션) 시작 시점 이후에 변경된(변경이 진행 중이거나 이미 커밋된) 값을 발견하면, Undo영역에 저장된 정보를 이용해 쿼리(또는 트랜잭션) 시작 시점의 일관성 있는 버전(CR Copy) 생성하고 그것을 읽음.

 

III. MVCC 유형 정책

가. MVCC의 유형

  1. Multiversion Timestamp Ordering
개념 동작 알고리즘
DBMS에서 생성하는 고유번호인 타임스탬프를 시간 순서에 따라 트랜잭션에 부여하여 동시성 제어의 기준으로 사용하는 기법
트랜잭션의 수행순서는 각 할당된 타임스탬프에 기반을 둔다. 타임스탬프 기법에서는 트랜잭션들의 타임스탬프 순서로 인해 직렬가능 스케쥴이 보장됨
트랜잭션 Ti 읽기 연산 Ri(X) 요청 ,
a) Ri(Xk) 값을 반환한다.(여기서 Xk <= TS(Ti)이며, 가장 타임스탬프를 가지는 X 버전이다)
트랜잭션 Ti 쓰기 연산 Wi(X) 수행 ,
a) 이미 Rj [Xk] TS(Tk) < TS(Ti) < TS(Tj) 프로세스 되었다면 Wi(X)는 거부된다.
b) a 경우가 아니라면 Wi(X) 전환된다.
  • 버전이란 한 데이터 항목이 변경될 때 그 데이터 항목의 이전 값을 스냅샷(snapshot) 형태로 보존

    2. Multiversion Two-Phase Locking
개념 R, W, C 호환성 테이블
  1. 하나의 데이터 항목에 R(읽기), W(쓰기), (보증) 가지 잠금 모드를 사용함
  2. 세 가지 락은 유기적으로 서로 확인하여 동시성 제어를 하는데 유용하게 활용됨
  • 쓰기를 수행한 모든 데이터 항목들에 대해 C-lock을 획득해야 하기 때문에 트랜잭션의 완료가 지연되는 단점을 보유함

 

  1. MVCC(Multiversion Concurrency Control)의 정책
    1. 다중버전 읽기 일관성(Multi-Version Read Consistency) 정책
  1. 갱신이 이루어 진 경우, 기존 데이터 값은 데이터베이스의 롤백 세그먼트에 기록되고, 다른 사용자들은 트랜잭션이 Commit 되기 전까지는 롤백 세그먼트에 저장된 이전 버전의 정보를 조회하게 되어 데이터의 읽기 일관성을 보장
  2. SCN(System Change Number) : 이전 데이터를 얻기 위하여, 내부적으로 트랜잭션이 commit 때마다
2. 독립성 레벨(Isolation Level) 정책
Level 설명
Read Committed 오라클의 default 독립성 레벨.
각 쿼리는 쿼리가 시작되기 전에 commit 데이터만을 읽을 있음
Serializable 트랜잭션이 시작되는 시점에서 commit 데이터의 변경 사항과 insert, update, delete 명령문을 통해 트랜잭션 자신이 변경한 데이터만 있어 읽기 일관성 보장
Read Only 트랜잭션이 시작된 시점에서 commit 변경 사항만 있으며, insert, update, delete 명령문은 허용하지 않음

“끝”

반응형

'정보관리기술사 > DB_데이터분석' 카테고리의 다른 글

함수적 종속성(FD)  (0) 2023.08.09
낙관적 검증(Validation) 기법  (0) 2023.08.08
Timestamp Ordering  (0) 2023.08.05
2PL or 2PLP(2 Phase Locking)  (0) 2023.08.04
동시성 제어  (0) 2023.08.03

+ Recent posts