섞이는 것은 실행 시점이고, 깨지면 안 되는 것은 각 트랜잭션 내부의 읽기/쓰기 순서입니다.
다른 트랜잭션이 사이에 들어와도, T1 안에서는 정의된 순서가 바뀌지 않습니다.
R(A)W(A)R(B)W(B)아래는 앞부분만 뽑은 예시 인터리빙입니다. 핵심은 트랜잭션 전체를 통째로 바꾸는 것이 아니라, 각 연산을 가능한 시점에 끼워 넣는 데 있습니다.
R(A)
R(A)
W(A)
W(A)
R(B)
R(B)
중요한 것은 “섞여도 된다”가 아니라 “섞여도 내부 규칙은 그대로다”라는 점입니다.
R(A)W(A)R(B)W(B)트랜잭션은 동시에 실행되더라도, 각자 정의된 작업 순서를 잃지 않은 채 같은 자원을 나눠 쓸 수 있습니다.
이런 교차 실행이 항상 안전한 것은 아니므로, 다음 예시에서는 어떤 인터리빙이 올바른 결과를 깨뜨리는지 확인하게 됩니다.