• 커밋 완료된 데이터만 조회 가능
  • 가장 엄격한 격리성 레벨
  • 모든 트랜잭션 순차적으로 실행하는 것과 동일한 효과
  • 여러 트랜잭션이 동시에 같은 행에 접근 불가
  • 팬텀 리드까지 완벽히 방지하지만, 성능이 가장 낮다
    • 트랜잭션간 충돌이 많이 일어남
  1. Tx A가 계좌 목록 조회(balance >= 1000)
  2. Tx B가 새 계좌를 추가하려 하면, Tx A가 끝날 때까지 대기해야함
  • 모든 동시 실행을 차단하여 완벽한 정합성 보장
  • 트랜잭션이 직렬화 됨 매우 낮은 성능 유발
  • 팬텀 리드까지 방지

극단적인 격리 방법

예시: 백화점 한 사람씩 입장 규칙

  1. 백화점에서 한 번에 한 명씩만 쇼핑하도록 제한
  2. 어떤 사람이 쇼핑하는 동안, 다른 사람은 문 앞에 서서 대기
  3. 앞 사람이 다 끝나야, 다음 사람이 들어가서 쇼핑 가능

모든 트랜잭션 직렬적으로 처리해 정합성이 완벽히 보장되지만, 성능이 엄청 느려질 수 있음!

허용 가능 도메인

없다

금융 시스템이나 병원 예약, 주식 거래 등 정합성이 압도적으로 필요한 도메인이더라도 다른 방법을 통해서 정합성 해결하려 하지 이 방식으로 절대 안함

이 방식을 할거면 애초에 다중 고객을 대하는 서비스가 아닌 것.

추후 배울 락을 이용해서 해결하는 경우가 훨씬 많다