-
Notifications
You must be signed in to change notification settings - Fork 0
3_1. OCC
김영서 edited this page Oct 7, 2021
·
1 revision
- 데이터베이스의 내용을 Private Space로 복사하여 작업 수행
- 작업한 내용이
Conflic Serializable한지 검사 -
Conflic Serializable하다면 Private Space의 결과를 데이터베이스에 반영
대표적으로 BOCC, FOCC가 있습니다.
tj를 tj 이전에 Commit된 ti들과 비교하여 Conflict Serializble을 판단합니다.
-
tj가 시작하기 전에ti가 이미 Commit 된 경우,tj는 Commit 가능합니다.
-
"
tj시작" ~ "tjValidation 시작" 사이에 끝난 트랜잭션들의 WS과tj의 RS이 공집합인 경우,tj는 Commit 가능합니다.
결론적으로 BOCC에서는 tj의 Validation 시작 전 Commit 된 모든 트랜잭션들이 1 또는 2의 조건을 만족하면, tj를 Commit 할 수 있습니다.

tj가 Validation 할 때에 tj와 동시에 실행 중인 (active한) 트랜잭션들의 RS과 tj의 WS을 비교합니다. 이를 통해 tj의 Write가 Conflict를 발생시키는지 확인합니다.
FOCC는 아래 3가지 방법중 하나를 통해 Conflict를 방지합니다.
- Abort
tj -
tj의 WS과 교집합이 공집합이 아닌 RS를 갖는 트랜잭션을 Abort -
tj를 Wait 시키기
