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