문제
트랜잭션의 **격리성(Isolation)**을 보장하기 위한 동시성 제어 기법에서 **다중 버전 동시성 제어(MVCC)**의 동작 원리를 설명하고, 데드락 탐지 및 해결을 위한 대기 그래프(Wait-for Graph) 기법의 작동 과정과 한계점을 서술하시오.
정답
MVCC는 각 데이터에 대해 여러 버전을 유지하여 읽기 작업 시 해당 트랜잭션의 타임스탬프에 맞는 버전을 제공함으로써 락 없이 읽기 일관성을 보장한다. 쓰기 시에는 새로운 버전을 생성하고 커밋 시점에 충돌 검사를 수행한다. 대기 그래프는 트랜잭션 간 대기 관계를 그래프로 표현하여 사이클 존재 시 데드락으로 판단하고, 사이클에 포함된 트랜잭션 중 하나를 롤백시켜 해결한다. 한계점은 그래프 구성과 사이클 탐지에 오버헤드가 발생하고, 분산 환경에서는 글로벌 대기 그래프 유지가 복잡하다는 것이다.
MVCC다중 버전타임스탬프버전 관리읽기 일관성충돌 검사대기 그래프사이클 탐지데드락롤백오버헤드분산 환경
해설
MVCC는 락 경합을 줄여 성능을 향상시키면서도 격리성을 보장하는 기법으로, 각 트랜잭션이 일관된 데이터 스냅샷을 볼 수 있도록 한다. 대기 그래프는 데드락을 사전에 탐지할 수 있는 장점이 있지만, 그래프 유지와 사이클 탐지에 따른 성능 비용과 분산 시스템에서의 복잡성이 단점이다.