[정의] 트랜잭션 수행중 어떠한 검증도 수행하지 않고, 트랜잭션 종료시 검증을 수행하여 데이터베이스에 반영하는 기법

 

[기법] 사용자들이 같은 데이터를 동시에 수정하지 않을 것이라고 가정하는 낙관적 동시성 제어 기법에 기반


[처리단계]  판독 → 확인 → 실행(기록/철회)
- 판독(Read phase, R) : 트랜잭션의 모든 갱신은 사본에 대해서만 수행, 실제 DB 수행하지 않음
- 확인(Validation phase, V) : 판독단계에서 사본에 반영된 트랜잭션의 실행결과를 DB반영전 직렬 가능성의 위반여부를 확인
- 기록(Write phase, W) : 확인 통과시 실행결과를 DB에 반영, 실패시 결과 취소후 트랙잭션 복귀


[확인 단계의 확인 검사 조건]
- 타임스탬프 :
  1) Start(Ti) : 판독 시작시간
  2) Validation(Ti) : 판독 끝나고 확인 시작한 시간
  3) Finish(Ti) : 최종 기록 단계를 완료한 시간
- 판독 및 기록 집합 :  확인 작업 위해 트랜잭션의 판독집합 (read set) 과 기록집합(write set)을 유지.
  1) 판독집합(read set): Ti가 판독한 데이터 아이템의 집합
  2) 기록집합(write set): Ti가 기록한 데이터 아이템의 집합

 

 

 


[직렬성 검사 조건]
① Finish(Ti) < Start(Tj)
② Start(Tj) < Finish(Ti) <Validation(Tj) 이고 Write-Set(Ti) ∩ Read-Set(Tj) = F
③ Validation(Ti) < Validation(Tj) 이고 Write-Set(Ti) ∩ Read-Set(Tj) = F 이며 Write-Set(Ti) ∩ Write-Set(Tj) = F
- TS(Ti)<TS(Tj)의 관계에 있는 모든 트랜잭션 Ti 에 대해 위 3가지 조건 중 하나만 만족하면 트랜잭션들 간에 간섭이 없는 것으로 보고 확인을 성공
- 하나라도 만족하지 못하면 트랜잭션 간의 간섭이 일어났을 가능성이 있기 때문에 실패

 

 

 

 

 

'ITPE > DB' 카테고리의 다른 글

데이터 모델링  (0) 2021.03.06
ARIES (Algorithms for Recovery and Isolation Exploiting Semantics)  (0) 2021.03.06
MVCC (MultiVersion concurrency control)  (0) 2021.03.06
Timestamp Ordering  (0) 2021.03.06
무결성  (0) 2018.03.03

+ Recent posts