규칙: 커밋된 값만 읽기

비연쇄적 스케줄은 읽기 자체를 늦춰서 미커밋 의존성이 생기지 않게 만듭니다. 따라서 뒤 트랜잭션이 앞선 트랜잭션의 롤백에 끌려가지 않습니다.

1단계

T1이 값을 썼지만 아직 미커밋

T1 미커밋

W(A = 100)

A 값은 바뀌었지만 아직 확정되지 않았습니다.

2단계

T2의 읽기는 잠시 대기

T2 읽기 보류

R(A) ... wait

비연쇄적 스케줄에서는 커밋 전 값을 바로 읽지 못합니다.

3단계

T1 커밋 후에만 읽기 허용

T1 → T2 읽기 가능

COMMIT → R(A = 100)

이 시점의 읽기는 이미 확정된 값에만 의존합니다.

커밋 전에 실패하면 T2가 아직 읽지 않았으므로, 취소는 T1에서 끝납니다.

미커밋 값을 읽은 후속 작업이 없어서 연쇄적 롤백의 사슬이 시작되지 않습니다.

커밋 후 읽으면 T2는 확정된 값만 읽으므로, 읽은 근거가 롤백으로 사라지지 않습니다.

결과적으로 커밋 순서와 읽기 순서가 안전하게 정렬됩니다.