728x90
반응형

다중버전 동시성제어

(MVCC; Multiversion concurrency control)

 

[개념] 트랜잭션이 데이터 아이템에 접근 시 데이터 아이템의 다중버전 상태 중 직렬 가능성이 보장되는 버전을 선택하여 처리하는 기법

[특징] UNDO영역(Rollback Segment), CR Copy(일관된 읽기)

[프로세스] 데이터 변경발생 → Undo영역에 저장 → CR Copy생성 → Trx보다 버전이 최신인 값 발견 → Undo영역의 CR Copy Read

[세부절차]

1)데이터 변경시 변경사항을 Undo영역 저장

2)쿼리시작시점 이후에 변경된 값을 발견하면, Undo 영역에 저장된 정보를 이용해 쿼리시작시점의 일관성 있는 버전을 생성하고 READ

3)Undo 블록 I/O, CR 블록 캐싱 등의 부가적인 오버헤드가 발생

 

[세부]Ti가 Read(Q)실행-반환되는 값은 버전 Qk의 내용

Ti가 Write(Q)실행

TS(Ti) < R-Timestamp(Qk)면 Ti는 복구

TS(Ti) < W-Timestamp(Qk)이면 Qk의 내용은 Overwritten

그 외의 경우에는 Q의 새로운 버전 생성

W-Timestamp(Qk) :버전 Qk를 생성한 트랜잭션의 타임스탬프

R-Timestamp(Qk) : 버전 Qk를 성공적으로 판독한 트랜잭션중 가장 큰 값

[고려사항]1)Snapshot Too Old 문제 → Undo크기 조절, 불필요한 Commit 줄임. 너무 긴 트랜잭션 조정 수행

 

DBMS 트랜잭션 처리 비교자료.pdf
3.31MB

728x90
Posted by Mr. Slumber
,