X

다중 버전 동시성 제어 (MVCC, Multi Version Concurrency Control)

I. 데이터 무결성, 트랜잭션 직렬화, 다중 버전 동시성 제어

가. 다중 버전 동시성 제어(MVCC)의 개념

트랜잭션의 데이터 접근 시, 그 트랜잭션의 타임스탬프와 접근 데이터의 여러 버전 타임스탬프 비교하여, 현재 실행 중인 스케줄의 직렬 가능성이 보장되는 버전 선택 기법

나. 다중 버전 동시성 제어의 절차 개요

절차 개요
갱신 시 기존 데이터 값은 DB Rollback Segment에 기록, 다른 세션은 트랜잭션이 Commit 전까지 이전 버전 정보 조회하여 일관성 보장

– SCN (System Change Number) 이전 데이터 얻기 위해, 트랜잭션이 Commit 될 때마다 증가

II. 다중 버전 동시성 제어 개념도 및 원리/요소

가. 다중 버전 동시성 제어 개념도

– 동시성 향상 위해 MVCC 적용 시 Undo 블록 I/O에 따른 오버헤드 고려 필요

나. 다중 버전 동시성 제어 원리/요소

구분 내용 설명
MVCC
원리
① 이전 데이터 값 저장
② 데이터 변경 시 마다 Undo 영역에 저장
③ SCN 값 기준 Rollback Segment/Undo 영역 기반 동시성 관리
MVCC
요소
타임스탬프 – 각 데이터 항목 버전 필드값 보유
SCN – Data, REDO, Control File 동기화 번호
Undo 영역 – 지워진 데이터는 Undo Segment 존재
CR Copy – 데이터 조회 시 CR 블록 이용해 복사
오버헤드 – Undo 블록 I/O 버전생성 캐싱 OverH

– MVCC 동시성 제어 필수 요소인 Undo 영역 데이터가 지워지는 현상 대비 필요

Categories: 데이터베이스
도리: