PostgreSQL
일반 읽기
MVCC 스냅샷
잠금 읽기
FOR UPDATE 계열
범위 보호
SERIALIZABLE SSI
실패 처리
serialization failure 재시도
격리 수준 이름이 같아도 구현은 다르다. 제품별로 MVCC 스냅샷과 잠금 범위, 충돌 처리 방식을 함께 확인한다.
MVCC 스냅샷
FOR UPDATE 계열
SERIALIZABLE SSI
serialization failure 재시도
consistent read
FOR UPDATE / SHARE
gap, next-key lock
deadlock/timeout 재시도
제품별 MVCC/locking
lock hint와 isolation
serializable/key-range lock
NOWAIT, timeout, retry
스냅샷을 보는가, 현재 잠금을 기다리는가?
읽으면서 쓰기 충돌까지 막는가?
새 행 진입까지 막는가?
대기, 실패, 재시도 중 무엇을 선택하는가?