study
용어 메모 - Concurrency Control
렁치
2026. 7. 6. 22:57
Concurrency Control (동시성 제어)
여러 트랜잭션이 동시에 데이터에 접근할 때 데이터의 일관성을 유지하는 기법
목적
- 데이터 무결성 유지
- 트랜잭션 간 충돌 방지
- 데이터베이스 일관성 보장
발생 가능한 문제
Lost Update
두 트랜잭션이 같은 데이터를 수정하여 한쪽 결과가 사라짐
T1 : A = A + 100
T2 : A = A - 50
최종 결과가 잘못될 수 있음.
Dirty Read
아직 Commit되지 않은 데이터를 읽음
T1 : UPDATE
T2 : READ
T1 : ROLLBACK
T2는 잘못된 데이터를 읽게 됨.
Non-Repeatable Read
같은 데이터를 두 번 읽었는데 값이 달라짐
T1 : SELECT
T2 : UPDATE + COMMIT
T1 : SELECT
대표 기법
Locking
데이터 사용 전에 잠금 설정
- Shared Lock (읽기)
- Exclusive Lock (쓰기)
Timestamp Ordering
트랜잭션에 시간 정보를 부여하여 순서를 보장
MVCC (Multi Version Concurrency Control)
데이터의 여러 버전을 유지
- 읽기와 쓰기의 충돌 감소
- PostgreSQL, Oracle 등에서 사용