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 |
댓글