본문 바로가기
IT기술노트/데이터베이스

동시성제어(Concurrency Control)

by 비트코기 2021. 3. 7.

I. 데이터베이스 무결성 확보를 위한, 동시성제어의 개요

가. 동시성제어(Concurrency Control)의 정의

   - 다중 사용자 환경을 지원하는 데이터베이스 시스템에서 여러 트랜잭션들이 성공적으로 동시에 실행 될 수 있도록 지원하는 기능


II. 동시성제어의 문제점 및 제어기법

가. 동시성제어의 문제점

문제점

설명

갱신내용 손실

(Lost Update)

- 트랜잭션들이 동일 데이터를 동시에 갱신하는 경우 발생

- 이전 트랜잭션이 데이터를 갱신 후 종료 전 나중 트랜잭션이 갱신 값을 덮어쓰는 경우 오류 발생

현황파악 오류

(Dirty Read)

- 트랜잭션의 중간 수행결과를 다른 트랜잭션이 참조함으로 발생하는 오류

모순성

(Inconsistency)

- 두 트랜잭션이 동시에 실행할 때 DB가 일관성이 없는 모순된 상태로 남는 오류

연쇄복귀 불가

(Cascading Rollback)

- 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 다른 트랜잭션이 처리한 부분에 대해 취소 불가능

나. 동시성제어의 제어기법

제어기법

설명

Locking

Shard Lock

- 데이터 항목에 대해 읽기만 가능

Exclusive Lock

- 데이터 항목에 대해 읽기와 쓰기(입력/삭제)가 모두 가능

2Phase Locking

- 모든 트랜잭션들이 lock unlock연산을 확장 단계와 수축단계로 구분하여 수행

Timestamp Ordering

- DB 시스템에 들어오는 트랜잭션 순서대로 System Clock/Logical Counter를 할당하고 순서를 부여하여 동시성 제어의 기준으로 사용

Validation (낙관적 검증)

- 트랜잭션의 수행 동안은 어떤 검사도 하지 않고, 트랜잭션 종료시 일괄적으로 검사하는 방법

반응형

'IT기술노트 > 데이터베이스' 카테고리의 다른 글

타임스탬프 순서(Timestamp Ordering) 기법  (0) 2021.03.07
2PL (2Phase Locking)  (0) 2021.03.07
Locking  (0) 2021.03.07
동시성제어의 문제점  (0) 2021.03.07
Isolation Level  (0) 2021.03.07
Phantom Read  (0) 2021.03.07
Dirty Read  (0) 2021.03.07
정적, 동적 인덱싱  (0) 2021.03.07

댓글