본문으로 건너뛰기

병행제어

· 약 3분

병행제어의 개념

  • 다수의 트랜잭션이 동일한 데이터에 동시에 접근하고자할 때, 각 트랜잭션이 독립적으로 수행된 결과를 보장하는 기법
  • 갱신손실, 연쇄복귀, 모순성 제거, 무결성 일관성 보장

병행제어 미수행시 문제점과 해결기법

병행제어 미수행시 문제점

문제내용비고
갱실분실트랜잭션의 동일 데이터 동시 갱신시 발생고립성 위배
불일치다중 사용자 트랜잭션들이 동시 실행시 모순된 결과 반환일관성, 고립성 위배
연쇄복귀한 트랜잭션이 실패 후 롤백될 때 다른 트랜잭션 처리 취소 불가일관성, 원자성 위배

병행제어 해결기법

그립 표현

구분내용비고
Locking트랜잭션 사용 자원에 대해 상호배제 기능 제공DB락, Table락, Row락, Column락
2PL모든 트랜잭션의 lock과 unlock 연산을 확장, 수축단계로 구분하여 수행직렬가능성 보장, 교착상태 예방필요
Timestamp트랜잭션 입력시 Timestamp 시간 순으로 직렬화직렬가능성 보장, 교착상태 방지
낙관적 기법트랜잭션 수행시 미검사, 트랜잭션 종료 전 위반 검사Read, Validate, Write 단계
다중버전 병행제어여러 버전 저장 후 일관성이 보장된 트랜잭션 선택동시성 우수, I/O오버헤드 증가

병행제어 고려사항

  • 분산 데이터베이스 시스템의 경우, NW 지연, 노드 장애 등 문제 발생을 대비하기 위해 2PL 기법 사용