Learning
토픽 44 / 201·무결성 및 트랜잭션

동시성 제어 (Concurrency Control)

동시성 제어 (Concurrency Control)

다중 사용자 환경에서 동시에 실행되는 트랜잭션들이 데이터의 일관성과 무결성을 해치지 않도록 제어하는 기법

특징: 데이터 무결성 보장, 동시 처리 성능 유지, 오버헤드와 일관성 간 트레이드오프

구성요소

  • 락킹(Locking): 데이터에 잠금을 걸어 동시 접근 제어
  • 타임스탬프(Timestamp): 트랜잭션 시작 시간 기반 순서 부여
  • 낙관적 제어(Optimistic): 충돌이 적다 가정, 커밋 시점에 검증
  • 비관적 제어(Pessimistic): 충돌이 많다 가정, 미리 잠금 획득

기술요소

  • 공유락(S-Lock): 읽기 시 획득, 다른 읽기 허용
  • 배타락(X-Lock): 쓰기 시 획득, 모든 다른 접근 차단
  • 2PL(Two-Phase Locking): 락 획득/해제를 2단계로 분리하여 직렬가능성 보장
  • MVCC(Multi-Version Concurrency Control): 데이터 버전을 유지하여 읽기 블로킹 제거

적용사례: 온라인 거래 시스템, 예약 시스템, 재고 관리

비교: 비관적(Lock/충돌방지/동시성 낮음) vs 낙관적(Validation/충돌시 롤백) vs MVCC(버전관리/읽기 무잠금)

연관: 트랜잭션, 락킹, 교착상태, 격리 수준