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 영역 데이터가 지워지는 현상 대비 필요