본문 바로가기
IT기술노트/데이터베이스

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

by 비트코기 2021. 9. 20.

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

   - 하나의 트랜잭션에서 데이터에 접근하는 경우 데이터의 다중버전 상태 중 보장되는 버전에 맞는 값을 반환하여 처리하는 동시성제어 기법

 

II.  데이터의 다중버전 상태

트랜잭션 1 트랜잭션 2
a = 100  
start transaction  
update a = 500  
  select a 
a = 100
select a 
a = 500
 
commit  
  select a
a = 500

- 트랜잭션 1에서 a를 500으로 업데이터 했으나, 트랜잭션 2에서는 여전히 원래 값인 100을 조회, 이는 데이터를 다중버전으로 유지하여 commit전까지 undo 영역에 이전 값을 유지하기 때문에 가능

 

III. 다중버전 동시성 제어의 동작절차

가. 다중버전 동시성 제어의 동작절차

나. 다중버전 동시성 제어의 동작절차 설명

동작절차 설명
step 1 - SCN 10023번 트랜잭션 시작
step 2 - SCN 10023번 이후 변경 데이터 확인
step 3 - Rollback Segment, Undo 영역의 CR Copy 참고
step 4 - SCN 10023을 넘지 않는 데이터 중 최신 데이터를 조회

 

IV. 다중버전 동시성 제어의 주요요소

주요요소 설명
SCN - System Change Number
- Select 수행시 갖는 고유한 번호
CR Copy - Undo 영역에 저장된 정보를 이용해 트랜잭션 시작 시점의 일관성 있는 버전을 읽어 복사
CR Block - CR Copy를 이용하여 가져온 값을 저장하는 Block
Rollback Segment - 업데이트문 실행시 기존 데이터 블록 내의 데이터 레코드를 새로운 버전으로 변경하고, 이전 버전을 보관하는 별도의 저장소

- MVCC는 Rollback Segment를 이용하기 이전에 MGA(Multi Generation Architecture) 아키텍처 사용

반응형

댓글