Learning
토픽 196 / 201·병행제어 문제점

병행제어 문제점 (Concurrency Control Problems)

병행제어 문제점 (Concurrency Control Problems)

다중 트랜잭션 동시 실행 시 적절한 제어 없이 발생하는 데이터 무결성 위반 문제 (121회, 128회 출제)

특징: 갱신손실, 오손판독, 비반복판독, 팬텀판독의 4가지 유형

4가지 문제 유형

  • 갱신손실(Lost Update): 동시 갱신 시 한쪽 결과 덮어써져 유실, 방지: X-Lock/CAS
  • 오손판독(Dirty Read): 미커밋 데이터 읽기 후 롤백되면 유령 데이터, 방지: Read Committed 이상
  • 비반복판독(Non-Repeatable Read): 같은 행 재조회 시 UPDATE/DELETE로 값 변경, 방지: Repeatable Read 이상
  • 팬텀판독(Phantom Read): 범위 쿼리 재실행 시 INSERT/DELETE로 행 수 변경, 방지: Serializable/Gap Lock

격리수준 매핑

기본 격리수준: Oracle/PG → Read Committed, MySQL InnoDB → Repeatable Read

MVCC: 다중 버전으로 읽기 블로킹 없이 동시성 확보, 스냅샷 기반 일관된 읽기

비교: 병행제어 문제(동시성 이상) vs 이상현상(정규화 미비 이상)

연관: 트랜잭션, ACID, 격리수준, MVCC, 2PL, 교착상태