문제
데이터베이스 동시성 제어에서 **다단계 로킹(Multi-Granularity Locking)**의 의도 잠금(Intention Lock) 종류를 설명하고, 트랜잭션 격리 수준 중 SERIALIZABLE 수준에서 발생할 수 있는 성능 문제와 해결 방안을 서술하시오.
정답
의도 잠금은 IS(Intention Shared), IX(Intention Exclusive), SIX(Shared and Intention Exclusive)가 있다. IS는 하위 노드에 공유 잠금 의도, IX는 하위 노드에 배타 잠금 의도, SIX는 현재 노드 공유 잠금과 하위 노드 배타 잠금 의도를 나타낸다. SERIALIZABLE 수준은 완전한 격리성을 보장하지만 범위 잠금으로 인한 동시성 저하와 교착상태 증가가 문제이며, 이를 해결하기 위해 MVCC나 스냅샷 격리를 사용할 수 있다.
의도 잠금ISIXSIXIntention SharedIntention ExclusiveSERIALIZABLE범위 잠금MVCC스냅샷 격리
해설
다단계 로킹에서 의도 잠금은 계층적 구조에서 상위 노드의 잠금 의도를 표시하여 효율적인 잠금 호환성 검사를 가능하게 한다. SERIALIZABLE은 가장 높은 격리 수준으로 팬텀 리드까지 방지하지만 성능 저하가 크므로 MVCC 같은 기법으로 보완할 수 있다.