데이터 중심의 애플리케이션 설계 - 쓰기 왜곡과 팬텀
다음은 두 트랜잭션의 동시 쓰기 경합 상황이다.
다음은 두 트랜잭션의 동시 쓰기 경합 상황이다.
스냅샷 격리(Snapshot isolation)는 읽기만 가능한 트랜잭션에 매우 효과적인 격리 수준이다. 하지만 데이터베이스에 따라 용어를 다르게 사용하고 있다.
커밋된 읽기(read committed)와 스냅샷 격리 (snapshot isolation) 는 동시에 쓰기를 수행할 때 읽기 전용 트랜잭션이 무엇을 보는지를 결정한다.
MVCC는 트랜잭션의 격리(Isolation)을 스냅샷 수준에서 구현한 메커니즘이다. MVCC가 적용된 데이터베이스에서 인덱스는 어떻게 동작할까?
두 트랜잭션이 동일한 데이터를 건드리지 않는다면, 어느 트랜잭션도 다른 트랜잭션에 의존하지 않기 때문에 안전하게 병렬로 실행할 수 있다.