토픽 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(버전관리/읽기 무잠금)
연관: 트랜잭션, 락킹, 교착상태, 격리 수준