반응형
데이터베이스의 동시성제어/병행제어(Concurrency Control)에 대해 설명
가. 동시성제어(병행제어)의 정의
나. 병행제어의 기법의 종류, 병행제어를 안했을때의 문제점
Ⅰ. 데이터베이스 트랜잭션 일관성/무결성 보장, 동시성 제어의 정의
정의 | - 다수의 사용자가 접근하는 DBMS에서 트랜잭션의 직렬화로 트랜잭션 간의 간섭을 제어해서 데이터 일관성, 무결성을 유지하는 기법 |
필요성 | - 트랜잭션 일관성, 무결성 유지 |
- 복수 트랜잭션의 직렬화 | |
- 트랜잭션 간의 상호간섭 제어 |
- 동시성이 높을수록 데이터 일관성이 떨어지므로 다수의 사용자가 접근하는 시스템의 경우 다양한 동시성 제어 기법 적극 활용 필수
Ⅱ. 동시성 제어 기법의 종류 및 상세 설명
기법 | 매커니즘 | 설명 |
Locking | - s-lock: lock된 데이터 자원은 모든 트랜잭션에 대해 "읽기"만 허용 - x-lock:lock된 데이터 자원은 lock 수행 트랜잭션만 "읽기", "쓰기" 허용 |
|
2PL | - 확장단계: lock만 수행 가능 - 축소단계: unlock만 수행 가능 연쇄 복귀 불가, 엄격한 2PL로 해결 |
|
Timestamp Ordering |
- 트랜잭션에 시간 순서대로 timestamp를 지정하여 트랜잭션의 직렬성 유지 - Deadlock 없음 |
|
적합성 검증 | - 트랜잭션 종료 후 일괄적으로 검증 수행 후 문제 없으면 DB 반영 | |
MVCC (Multi Version Concurrency Control) |
- 갱신시 기존 데이터를 "롤백 세그먼트"에 기록하여 commit 전까지 이전 버전 정보 조회로 데이터 일관성 유지 - SCN, CR Copy, CR Block |
Ⅲ. 동시성 제어 안했을때의 문제점
문제점 | 설명 | 사례 |
갱신 분실 (Lost Update) |
- 동일 데이터를 동시에 갱신 시 이전 갱신 값을 나중 갱신 값이 덮어쓰는 경우 |
- 트랜잭션1의 실행이 commit 되기 전에 트랜잭션 2가 동일 값 갱신하여 트랜잭션1의 값을 덮어씀 |
연쇄 복귀 불가 (Cascading Rollback) |
- 복수 트랜잭션이 데이터 공유, 특정 트랜잭션 취소 시 다른 트랜잭션 처리 부분 취소 불가 |
- 동일 데이터에 대해서 트랜잭션1이 취소를 원하지만 중간에 트랜잭션2의 결과가 반영되 롤백 불가 |
현황 파악 오류 (Uncommitted Dependency) |
- 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생 |
- 트랜잭션1이 완료되기 전에 트랜잭션2가 데이터를 참조함으로써 결과적으로 의미없는 값이 계산됨 |
모순성 (Inconsistency) |
- 두 트랜잭션 동시 실행 시 데이터의 일관성이 사라지고 모순됨 |
- 트랜잭션1 수행 도중 트랜잭션2의 수행이 완료됨으로 데이터는 일관성을 잃고 트랜잭션1 수행 완료 후 모순된 데이터만 존재 |
Ⅳ. 데이터베이스 무결성 유지를 위한 회복 기법
로그 기법 | 즉시 갱신/ 지연 갱신, 갱신 결과를 로그 파일에 저장, 장애 발생 시 로그 기반 회복 |
체크 포인트 | 트랜잭션 진행 중 체크 포인트 설정하여 데이터베이스에 반영, 장애 발생시 체크 포인트 이후만 회복 |
그림자 페이징 | 트랜잭션 결과를 그림자 페이지에 저장, 장애 발생시 그림자 페이지 이용 회 |
ARIES | REDO 중 Repeating history, UNDO 중 Logging changes |
- 다양한 회복 기법을 활용하여 트랜잭션의 원자성과 지속성 지원
참조
[1] https://itpenote.tistory.com/621
[2] https://medium.com/pocs/%EB%8F%99%EC%8B%9C%EC%84%B1-%EC%A0%9C%EC%96%B4-%EA%B8%B0%EB%B2%95-%EC%9E%A0%EA%B8%88-locking-%EA%B8%B0%EB%B2%95-319bd0e6a68a
[3] https://blog.skby.net/%EB%8B%A4%EC%A4%91-%EB%B2%84%EC%A0%84-%EB%8F%99%EC%8B%9C%EC%84%B1-%EC%A0%9C%EC%96%B4-mvcc-multi-version-concurrency-control/
[4] https://itpenote.tistory.com/710
[5] https://itpenote.tistory.com/619
반응형
'IT 기술 > DB' 카테고리의 다른 글
앙상블 기법 (0) | 2024.10.01 |
---|---|
데이터 모델링의 4단계 (0) | 2024.10.01 |
NoSQL CAP 이론 (0) | 2024.10.01 |
함수적 종속성(FD), 4, 5차 정규화, DB Table Partitioning, 쿼리 오프로딩 (0) | 2024.07.04 |
빅데이터 분석, 처리를 위한 Hadoop, Kappa (0) | 2024.07.04 |