DB의 MVCC는 어떻게 동시성을 보장하는가?
애플리케이션에서 DB를 사용할 때 MVCC는 어떻게 동시성을 보장하는가애플리케이션에서 여러 요청이 동시에 같은 데이터를 조회하고 수정하는 상황은 매우 흔하다.예를 들어 다음과 같은 요청이 동시에 들어올 수 있다.사용자 A: 주문 정보를 조회한다.사용자 B: 같은 주문의 상태를 결제 완료로 변경한다.사용자 C: 같은 주문을 다시 조회한다.이때 데이터베이스가 모든 조회와 수정을 하나의 잠금으로 직렬화한다면 데이터 정합성은 지킬 수 있지만, 조회 요청까지 대기해야 하므로 처리량과 응답 시간이 크게 나빠진다.대부분의 상용 RDBMS는 이를 해결하기 위해 MVCC(Multi-Version Concurrency Control, 다중 버전 동시성 제어)를 사용한다.MVCC의 핵심은 간단하다.하나의 데이터에 대해 과거..