[CMPT 454] Week9_2

June·2021년 3월 16일
0

CMPT 454

목록 보기
23/33

Schedules of T1 and T2

Transaction 1이랑 Transaction2는 완전히 별개다? R1(B)와 R2(B)에 전혀 영향을 미치지 않는다. R1(B)이후 B-100 해도 W 하지 않으면 R2(B)에 영향 미치지 않는다. 메모리에 separated된 공간에 있다. W1(B)이후 R2(B)하면 영향을 받는다.

S1: R1(X),W2(X),W1(Y),R3(X),C1,C2,C3

S1에서 파란색 부분을 스왑하면 다른 것에 아무 영향을 미치지 않으면서 T1T2T3가 된다. swap이후에도 R3(X)는 여전히 W2(X)에 의해 modified된 것을 읽는다. S1에서 W2(X)와 T1T2T3에서 W2(X) 둘 다 아무 것도 읽지 않고 W이기 때문에 같다.아무것도 읽지않고 W 하는 것을 blank write라고 한다. W1(Y)도 S1에서나 T1T2T3에서나 둘 다 R1(X)를 먼저하고 W1(Y)이기 때문에 같다.

하지만 T2T1T3와는 같지 않은데, R1(X)와 W2(X)를 바꾸면 달라진다. 왜냐하면 T1T2T3에서 R1(X)는 modified된 X를 읽기 때문이다.

Serializable

Serializable

Non-Serializable Schedules

Is a schedule S serializable?

Conflict actions

1 to 2, 2 to 1 싸이클

Serialiable

Cycle이 없다.

More Conflicts

Conflict based Testing

Example

Example

여기서 T2의 W(A)와 T1의 R(B)가 문제가 안되는 이유는 다른 상관없다. 다른 데이터 페이지이기 때문이다.

만약 이렇게 되어도 W1(A)와 R2(A)는 충돌할까? Yes. W1(B)는 영향이 없다 여기서. 충돌이 발생할 때 꼭 둘이 붙어 있을 필요가 없음을 의미한다.

conflict serializable -> serializable schedules
serializable schedules -/> conflict serializable

0개의 댓글