예시 2

같은 스케줄 안에서 A는 T1이 먼저, B는 T2가 먼저라는 제약이 동시에 생기면 선행 그래프에 T1 → T2 → T1 사이클이 생기고 충돌 직렬 가능하지 않습니다.

1. 교차 스케줄에서 두 데이터 항목의 선후가 갈린다
읽는 순서는 공유 가능하지만, 쓰기가 끼면 간선 방향이 결정됩니다.
1
2
3
4
5
6
7
8
T1
R(A)
W(A)
R(B)
W(B)
T2
R(B)
W(B)
R(A)
W(A)
A에서 보이는 순서
T1의 W(A)가 먼저 보이므로 A 관련 충돌은 T1 → T2를 강제합니다.
B에서 보이는 순서
T2의 R(B) 뒤에 T1의 W(B)가 와서 B 관련 충돌은 T2 → T1을 만듭니다.
2. 데이터 항목별 충돌을 간선으로 바꾸기
A
W(A)가 먼저, 그 뒤에 T2가 A를 읽거나 쓰므로 A는 T1이 선행합니다.
T1 → T2
B
R(B)는 T2가 먼저, 그 뒤에 T1이 W(B)를 수행하므로 B는 T2가 선행합니다.
T2 → T1
3. 두 방향 간선이 함께 존재하면 즉시 사이클
T1
T2
A가 만든 제약
T2
T1
B가 만든 제약
결론: 하나의 직렬 순서가 두 제약을 동시에 만족할 수 없으므로, 이 스케줄은 충돌 직렬 불가능입니다.