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 등에서 사용