다중 버전 동시성 제어 (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 영역 데이터가 지워지는 현상 대비 필요

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^