MVCC + Isolation

MVCC는 reader가 보는 과거 버전과 writer의 최신 버전을 분리한다

일반 읽기는 자기 스냅샷을 따라 과거 버전을 보고, 쓰기는 새 버전을 만든다. 정리는 오래된 reader가 끝난 뒤 가능하다.

Reader snapshot

SCN 120 또는 tx snapshot이 과거 버전을 가리킨다.

v1committed

reader가 보는 값

v2newer

writer가 만든 새 값

v3current

현재 행의 최신 버전

cleanup gate

오래된 snapshot이 끝나야 v1 같은 과거 버전을 정리한다.

정리: MVCC는 '락 없음'이 아니라 일반 읽기와 쓰기 충돌을 분리하는 구현 전략이다.