토픽 54 / 201·무결성 및 트랜잭션
낙관적 동시성 제어 (Optimistic Concurrency Control)
낙관적 동시성 제어 (Optimistic Concurrency Control)
트랜잭션 충돌이 드물다는 가정 하에 잠금 없이 작업하고 커밋 시점에 충돌 여부를 검증하는 동시성 제어 기법
특징: 잠금 오버헤드 없음, 충돌 시 롤백 비용 발생, 읽기 위주 환경에 적합
- •읽기 단계(Read Phase): 데이터 읽기 및 로컬 복사본에서 작업
- •검증 단계(Validation Phase): 커밋 전 다른 트랜잭션과 충돌 검사
- •쓰기 단계(Write Phase): 충돌 없으면 반영, 있으면 롤백
기술요소
- •타임스탬프(Timestamp): 트랜잭션 순서 판별
- •버전 번호(Version Number): 데이터 변경 감지
- •충돌 검출(Conflict Detection): 읽기/쓰기 집합 비교
적용사례: 읽기 위주 시스템, 웹 애플리케이션, JPA Optimistic Lock
비교: 낙관적(잠금없음/검증시점/읽기우수) vs 비관적(사전잠금/차단/쓰기우수)
연관: 동시성 제어, 버전 관리, MVCC